From 2019d89021f8bf793b3fbee2db612dbf0f05241e Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 28 Aug 2024 10:09:29 -0400 Subject: [PATCH] Move to the kotlin test generator. --- .editorconfig | 12 + .github/workflows/main.yml | 36 +- .gitignore | 13 +- Cargo.lock | 824 ------------------ Cargo.toml | 5 - README.md | 38 +- build.gradle.kts | 24 + converter/Cargo.toml | 35 - converter/build.rs | 34 - converter/src/bin/binproto_to_json.rs | 28 - converter/src/bin/json_to_binproto.rs | 46 - converter/src/lib.rs | 82 -- converter/src/parse.rs | 220 ----- converter/src/proto.rs | 6 - converter/src/proto/backup.proto | 1 - gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 249 ++++++ gradlew.bat | 92 ++ scripts/generate-base64-bytes.sh | 14 - scripts/generate-base64-uuid.sh | 6 - scripts/generate-binprotos.sh | 18 - scripts/generate-single-binproto.sh | 23 - src/main/kotlin/Main.kt | 130 +++ src/main/kotlin/Permutations.kt | 499 +++++++++++ src/main/kotlin/SeededRandom.kt | 39 + src/main/kotlin/StandardFrames.kt | 274 ++++++ src/main/kotlin/TestCase.kt | 17 + src/main/kotlin/Util.kt | 97 +++ src/main/kotlin/tests/AccountDataTestCase.kt | 126 +++ src/main/kotlin/tests/AdHocCallTestCase.kt | 30 + .../tests/ChatItemContactMessageTestCase.kt | 108 +++ .../ChatItemExpirationTimerUpdateTestCase.kt | 35 + .../kotlin/tests/ChatItemGiftBadgeTestCase.kt | 43 + .../tests/ChatItemGroupCallUpdateTestCase.kt | 66 ++ .../ChatItemIndividualCallUpdateTestCase.kt | 38 + .../ChatItemLearnedProfileUpdateTestCase.kt | 46 + .../ChatItemPaymentNotificationTestCase.kt | 75 ++ .../ChatItemProfileChangeUpdateTestCase.kt | 35 + .../tests/ChatItemRemoteDeleteTestCase.kt | 39 + ...ChatItemSessionSwitchoverUpdateTestCase.kt | 34 + .../tests/ChatItemSimpleUpdatesTestCase.kt | 35 + ...temStandardMessageFormattedTextTestCase.kt | 69 ++ ...ChatItemStandardMessageLongTextTestCase.kt | 47 + ...andardMessageSpecialAttachmentsTestCase.kt | 63 ++ ...ndardMessageStandardAttachmentsTestCase.kt | 54 ++ ...ChatItemStandardMessageTextOnlyTestCase.kt | 46 + ...hatItemStandardMessageWithEditsTestCase.kt | 73 ++ ...hatItemStandardMessageWithQuoteTestCase.kt | 110 +++ .../tests/ChatItemStickerMessageTestCase.kt | 56 ++ .../ChatItemThreadMergeUpdateTestCase.kt | 30 + src/main/kotlin/tests/ChatTestCase.kt | 57 ++ .../kotlin/tests/RecipientCallLinkTestCase.kt | 31 + .../kotlin/tests/RecipientContactsTestCase.kt | 50 ++ .../RecipientDistributionListTestCase.kt | 66 ++ .../kotlin/tests/RecipientGroupsTestCase.kt | 105 +++ .../kotlin/tests/StandardFramesTestCase.kt | 14 + src/main/kotlin/tests/StickerPackTestCase.kt | 26 + Backup.proto => src/main/proto/Backup.proto | 14 +- test-cases/account-data.binproto | Bin 273 -> 0 bytes test-cases/account-data.jsonproto | 71 -- test-cases/account_data_00.binproto | Bin 0 -> 189 bytes test-cases/account_data_00.txtproto | 84 ++ test-cases/account_data_01.binproto | Bin 0 -> 474 bytes test-cases/account_data_01.txtproto | 99 +++ test-cases/account_data_02.binproto | Bin 0 -> 579 bytes test-cases/account_data_02.txtproto | 119 +++ test-cases/account_data_03.binproto | Bin 0 -> 497 bytes test-cases/account_data_03.txtproto | 107 +++ test-cases/account_data_04.binproto | Bin 0 -> 454 bytes test-cases/account_data_04.txtproto | 107 +++ test-cases/account_data_05.binproto | Bin 0 -> 492 bytes test-cases/account_data_05.txtproto | 101 +++ test-cases/account_data_06.binproto | Bin 0 -> 492 bytes test-cases/account_data_06.txtproto | 119 +++ test-cases/account_data_07.binproto | Bin 0 -> 483 bytes test-cases/account_data_07.txtproto | 104 +++ test-cases/account_data_08.binproto | Bin 0 -> 415 bytes test-cases/account_data_08.txtproto | 104 +++ test-cases/account_data_09.binproto | Bin 0 -> 259 bytes test-cases/account_data_09.txtproto | 85 ++ test-cases/account_data_10.binproto | Bin 0 -> 402 bytes test-cases/account_data_10.txtproto | 102 +++ test-cases/account_data_11.binproto | Bin 0 -> 382 bytes test-cases/account_data_11.txtproto | 91 ++ test-cases/account_data_12.binproto | Bin 0 -> 264 bytes test-cases/account_data_12.txtproto | 94 ++ test-cases/account_data_13.binproto | Bin 0 -> 381 bytes test-cases/account_data_13.txtproto | 91 ++ test-cases/account_data_14.binproto | Bin 0 -> 403 bytes test-cases/account_data_14.txtproto | 102 +++ test-cases/account_data_15.binproto | Bin 0 -> 325 bytes test-cases/account_data_15.txtproto | 91 ++ test-cases/account_data_16.binproto | Bin 0 -> 320 bytes test-cases/account_data_16.txtproto | 94 ++ test-cases/account_data_17.binproto | Bin 0 -> 382 bytes test-cases/account_data_17.txtproto | 91 ++ test-cases/account_data_18.binproto | Bin 0 -> 280 bytes test-cases/account_data_18.txtproto | 96 ++ test-cases/account_data_19.binproto | Bin 0 -> 381 bytes test-cases/account_data_19.txtproto | 91 ++ test-cases/account_data_20.binproto | Bin 0 -> 321 bytes test-cases/account_data_20.txtproto | 94 ++ test-cases/account_data_21.binproto | Bin 0 -> 325 bytes test-cases/account_data_21.txtproto | 91 ++ test-cases/account_data_22.binproto | Bin 0 -> 402 bytes test-cases/account_data_22.txtproto | 102 +++ test-cases/account_data_23.binproto | Bin 0 -> 382 bytes test-cases/account_data_23.txtproto | 91 ++ test-cases/account_data_24.binproto | Bin 0 -> 264 bytes test-cases/account_data_24.txtproto | 94 ++ test-cases/account_data_25.binproto | Bin 0 -> 381 bytes test-cases/account_data_25.txtproto | 91 ++ test-cases/account_data_26.binproto | Bin 0 -> 403 bytes test-cases/account_data_26.txtproto | 102 +++ test-cases/account_data_27.binproto | Bin 0 -> 259 bytes test-cases/account_data_27.txtproto | 85 ++ test-cases/account_data_28.binproto | Bin 0 -> 320 bytes test-cases/account_data_28.txtproto | 94 ++ test-cases/account_data_29.binproto | Bin 0 -> 382 bytes test-cases/account_data_29.txtproto | 91 ++ test-cases/ad_hoc_call_00.binproto | Bin 0 -> 393 bytes test-cases/ad_hoc_call_00.txtproto | 108 +++ test-cases/ad_hoc_call_01.binproto | Bin 0 -> 400 bytes test-cases/ad_hoc_call_01.txtproto | 109 +++ test-cases/ad_hoc_call_02.binproto | Bin 0 -> 400 bytes test-cases/ad_hoc_call_02.txtproto | 109 +++ test-cases/chat_00.binproto | Bin 0 -> 515 bytes test-cases/chat_00.txtproto | 129 +++ test-cases/chat_01.binproto | Bin 0 -> 614 bytes test-cases/chat_01.txtproto | 137 +++ test-cases/chat_02.binproto | Bin 0 -> 616 bytes test-cases/chat_02.txtproto | 139 +++ test-cases/chat_03.binproto | Bin 0 -> 552 bytes test-cases/chat_03.txtproto | 131 +++ test-cases/chat_04.binproto | Bin 0 -> 554 bytes test-cases/chat_04.txtproto | 133 +++ test-cases/chat_05.binproto | Bin 0 -> 584 bytes test-cases/chat_05.txtproto | 137 +++ test-cases/chat_06.binproto | Bin 0 -> 524 bytes test-cases/chat_06.txtproto | 134 +++ test-cases/chat_07.binproto | Bin 0 -> 530 bytes test-cases/chat_07.txtproto | 130 +++ test-cases/chat_08.binproto | Bin 0 -> 443 bytes test-cases/chat_08.txtproto | 123 +++ test-cases/chat_09.binproto | Bin 0 -> 417 bytes test-cases/chat_09.txtproto | 118 +++ test-cases/chat_10.binproto | Bin 0 -> 443 bytes test-cases/chat_10.txtproto | 123 +++ test-cases/chat_11.binproto | Bin 0 -> 437 bytes test-cases/chat_11.txtproto | 120 +++ test-cases/chat_12.binproto | Bin 0 -> 423 bytes test-cases/chat_12.txtproto | 121 +++ test-cases/chat_13.binproto | Bin 0 -> 437 bytes test-cases/chat_13.txtproto | 120 +++ test-cases/chat_14.binproto | Bin 0 -> 443 bytes test-cases/chat_14.txtproto | 123 +++ test-cases/chat_15.binproto | Bin 0 -> 417 bytes test-cases/chat_15.txtproto | 118 +++ test-cases/chat_16.binproto | Bin 0 -> 443 bytes test-cases/chat_16.txtproto | 123 +++ test-cases/chat_17.binproto | Bin 0 -> 437 bytes test-cases/chat_17.txtproto | 120 +++ test-cases/chat_18.binproto | Bin 0 -> 423 bytes test-cases/chat_18.txtproto | 121 +++ test-cases/chat_19.binproto | Bin 0 -> 437 bytes test-cases/chat_19.txtproto | 120 +++ test-cases/chat_20.binproto | Bin 0 -> 443 bytes test-cases/chat_20.txtproto | 123 +++ test-cases/chat_21.binproto | Bin 0 -> 417 bytes test-cases/chat_21.txtproto | 118 +++ test-cases/chat_22.binproto | Bin 0 -> 443 bytes test-cases/chat_22.txtproto | 123 +++ test-cases/chat_23.binproto | Bin 0 -> 437 bytes test-cases/chat_23.txtproto | 120 +++ test-cases/chat_24.binproto | Bin 0 -> 423 bytes test-cases/chat_24.txtproto | 121 +++ test-cases/chat_25.binproto | Bin 0 -> 437 bytes test-cases/chat_25.txtproto | 120 +++ test-cases/chat_26.binproto | Bin 0 -> 443 bytes test-cases/chat_26.txtproto | 123 +++ test-cases/chat_27.binproto | Bin 0 -> 417 bytes test-cases/chat_27.txtproto | 118 +++ test-cases/chat_28.binproto | Bin 0 -> 443 bytes test-cases/chat_28.txtproto | 123 +++ .../chat_item_contact_message_00.binproto | Bin 0 -> 474 bytes .../chat_item_contact_message_00.txtproto | 136 +++ .../chat_item_contact_message_01.binproto | Bin 0 -> 1125 bytes .../chat_item_contact_message_01.txtproto | 237 +++++ .../chat_item_contact_message_02.binproto | Bin 0 -> 644 bytes .../chat_item_contact_message_02.txtproto | 157 ++++ .../chat_item_contact_message_03.binproto | Bin 0 -> 1076 bytes .../chat_item_contact_message_03.txtproto | 240 +++++ .../chat_item_contact_message_04.binproto | Bin 0 -> 636 bytes .../chat_item_contact_message_04.txtproto | 159 ++++ .../chat_item_contact_message_05.binproto | Bin 0 -> 1116 bytes .../chat_item_contact_message_05.txtproto | 240 +++++ .../chat_item_contact_message_06.binproto | Bin 0 -> 469 bytes .../chat_item_contact_message_06.txtproto | 139 +++ .../chat_item_contact_message_07.binproto | Bin 0 -> 1126 bytes .../chat_item_contact_message_07.txtproto | 244 ++++++ .../chat_item_contact_message_08.binproto | Bin 0 -> 644 bytes .../chat_item_contact_message_08.txtproto | 157 ++++ .../chat_item_contact_message_09.binproto | Bin 0 -> 1076 bytes .../chat_item_contact_message_09.txtproto | 240 +++++ .../chat_item_contact_message_10.binproto | Bin 0 -> 636 bytes .../chat_item_contact_message_10.txtproto | 159 ++++ .../chat_item_contact_message_11.binproto | Bin 0 -> 1114 bytes .../chat_item_contact_message_11.txtproto | 238 +++++ .../chat_item_contact_message_12.binproto | Bin 0 -> 469 bytes .../chat_item_contact_message_12.txtproto | 141 +++ .../chat_item_contact_message_13.binproto | Bin 0 -> 1126 bytes .../chat_item_contact_message_13.txtproto | 244 ++++++ .../chat_item_contact_message_14.binproto | Bin 0 -> 646 bytes .../chat_item_contact_message_14.txtproto | 159 ++++ ...t_item_expiration_timer_update_00.binproto | Bin 0 -> 422 bytes ...t_item_expiration_timer_update_00.txtproto | 124 +++ ...t_item_expiration_timer_update_01.binproto | Bin 0 -> 439 bytes ...t_item_expiration_timer_update_01.txtproto | 127 +++ ...t_item_expiration_timer_update_02.binproto | Bin 0 -> 439 bytes ...t_item_expiration_timer_update_02.txtproto | 127 +++ .../chat_item_group_call_update_00.binproto | Bin 0 -> 812 bytes .../chat_item_group_call_update_00.txtproto | 183 ++++ .../chat_item_group_call_update_01.binproto | Bin 0 -> 818 bytes .../chat_item_group_call_update_01.txtproto | 183 ++++ .../chat_item_group_call_update_02.binproto | Bin 0 -> 820 bytes .../chat_item_group_call_update_02.txtproto | 184 ++++ .../chat_item_group_call_update_03.binproto | Bin 0 -> 810 bytes .../chat_item_group_call_update_03.txtproto | 182 ++++ .../chat_item_group_call_update_04.binproto | Bin 0 -> 822 bytes .../chat_item_group_call_update_04.txtproto | 185 ++++ .../chat_item_group_call_update_05.binproto | Bin 0 -> 820 bytes .../chat_item_group_call_update_05.txtproto | 184 ++++ .../chat_item_group_call_update_06.binproto | Bin 0 -> 814 bytes .../chat_item_group_call_update_06.txtproto | 184 ++++ .../chat_item_group_call_update_07.binproto | Bin 0 -> 818 bytes .../chat_item_group_call_update_07.txtproto | 183 ++++ ...at_item_individual_call_update_00.binproto | Bin 0 -> 446 bytes ...at_item_individual_call_update_00.txtproto | 131 +++ ...at_item_individual_call_update_01.binproto | Bin 0 -> 452 bytes ...at_item_individual_call_update_01.txtproto | 131 +++ ...at_item_individual_call_update_02.binproto | Bin 0 -> 454 bytes ...at_item_individual_call_update_02.txtproto | 132 +++ ...at_item_individual_call_update_03.binproto | Bin 0 -> 444 bytes ...at_item_individual_call_update_03.txtproto | 130 +++ ...at_item_learned_profile_update_00.binproto | Bin 0 -> 435 bytes ...at_item_learned_profile_update_00.txtproto | 127 +++ ...at_item_learned_profile_update_01.binproto | Bin 0 -> 435 bytes ...at_item_learned_profile_update_01.txtproto | 127 +++ ...at_item_learned_profile_update_02.binproto | Bin 0 -> 440 bytes ...at_item_learned_profile_update_02.txtproto | 127 +++ ...at_item_learned_profile_update_03.binproto | Bin 0 -> 442 bytes ...at_item_learned_profile_update_03.txtproto | 127 +++ ...chat_item_payment_notification_00.binproto | Bin 0 -> 610 bytes ...chat_item_payment_notification_00.txtproto | 144 +++ ...chat_item_payment_notification_01.binproto | Bin 0 -> 626 bytes ...chat_item_payment_notification_01.txtproto | 145 +++ ...chat_item_payment_notification_02.binproto | Bin 0 -> 631 bytes ...chat_item_payment_notification_02.txtproto | 149 ++++ ...chat_item_payment_notification_03.binproto | Bin 0 -> 502 bytes ...chat_item_payment_notification_03.txtproto | 142 +++ ...chat_item_payment_notification_04.binproto | Bin 0 -> 489 bytes ...chat_item_payment_notification_04.txtproto | 139 +++ ...chat_item_payment_notification_05.binproto | Bin 0 -> 487 bytes ...chat_item_payment_notification_05.txtproto | 141 +++ ...chat_item_payment_notification_06.binproto | Bin 0 -> 621 bytes ...chat_item_payment_notification_06.txtproto | 148 ++++ ...chat_item_payment_notification_07.binproto | Bin 0 -> 637 bytes ...chat_item_payment_notification_07.txtproto | 152 ++++ ...chat_item_payment_notification_08.binproto | Bin 0 -> 615 bytes ...chat_item_payment_notification_08.txtproto | 148 ++++ ...chat_item_payment_notification_09.binproto | Bin 0 -> 492 bytes ...chat_item_payment_notification_09.txtproto | 142 +++ ...chat_item_payment_notification_10.binproto | Bin 0 -> 505 bytes ...chat_item_payment_notification_10.txtproto | 140 +++ ...chat_item_payment_notification_11.binproto | Bin 0 -> 495 bytes ...chat_item_payment_notification_11.txtproto | 139 +++ ...chat_item_payment_notification_12.binproto | Bin 0 -> 605 bytes ...chat_item_payment_notification_12.txtproto | 149 ++++ ...chat_item_payment_notification_13.binproto | Bin 0 -> 627 bytes ...chat_item_payment_notification_13.txtproto | 152 ++++ ...chat_item_payment_notification_14.binproto | Bin 0 -> 633 bytes ...chat_item_payment_notification_14.txtproto | 151 ++++ ...hat_item_profile_change_update_00.binproto | Bin 0 -> 439 bytes ...hat_item_profile_change_update_00.txtproto | 127 +++ ...hat_item_profile_change_update_01.binproto | Bin 0 -> 460 bytes ...hat_item_profile_change_update_01.txtproto | 128 +++ ...hat_item_profile_change_update_02.binproto | Bin 0 -> 446 bytes ...hat_item_profile_change_update_02.txtproto | 128 +++ .../chat_item_remote_delete_00.binproto | Bin 0 -> 445 bytes .../chat_item_remote_delete_00.txtproto | 128 +++ .../chat_item_remote_delete_01.binproto | Bin 0 -> 441 bytes .../chat_item_remote_delete_01.txtproto | 126 +++ .../chat_item_remote_delete_02.binproto | Bin 0 -> 433 bytes .../chat_item_remote_delete_02.txtproto | 130 +++ .../chat_item_remote_delete_03.binproto | Bin 0 -> 442 bytes .../chat_item_remote_delete_03.txtproto | 133 +++ .../chat_item_remote_delete_04.binproto | Bin 0 -> 440 bytes .../chat_item_remote_delete_04.txtproto | 131 +++ .../chat_item_remote_delete_05.binproto | Bin 0 -> 435 bytes .../chat_item_remote_delete_05.txtproto | 132 +++ .../chat_item_remote_delete_06.binproto | Bin 0 -> 440 bytes .../chat_item_remote_delete_06.txtproto | 131 +++ .../chat_item_remote_delete_07.binproto | Bin 0 -> 442 bytes .../chat_item_remote_delete_07.txtproto | 133 +++ .../chat_item_remote_delete_08.binproto | Bin 0 -> 433 bytes .../chat_item_remote_delete_08.txtproto | 130 +++ .../chat_item_remote_delete_09.binproto | Bin 0 -> 442 bytes .../chat_item_remote_delete_09.txtproto | 133 +++ .../chat_item_remote_delete_10.binproto | Bin 0 -> 440 bytes .../chat_item_remote_delete_10.txtproto | 131 +++ .../chat_item_remote_delete_11.binproto | Bin 0 -> 433 bytes .../chat_item_remote_delete_11.txtproto | 130 +++ .../chat_item_remote_delete_12.binproto | Bin 0 -> 440 bytes .../chat_item_remote_delete_12.txtproto | 133 +++ .../chat_item_remote_delete_13.binproto | Bin 0 -> 442 bytes .../chat_item_remote_delete_13.txtproto | 133 +++ .../chat_item_remote_delete_14.binproto | Bin 0 -> 435 bytes .../chat_item_remote_delete_14.txtproto | 132 +++ ...item_session_switchover_update_00.binproto | Bin 0 -> 428 bytes ...item_session_switchover_update_00.txtproto | 126 +++ ...item_session_switchover_update_01.binproto | Bin 0 -> 436 bytes ...item_session_switchover_update_01.txtproto | 127 +++ ...item_session_switchover_update_02.binproto | Bin 0 -> 435 bytes ...item_session_switchover_update_02.txtproto | 127 +++ .../chat_item_simple_updates_00.binproto | Bin 0 -> 424 bytes .../chat_item_simple_updates_00.txtproto | 126 +++ .../chat_item_simple_updates_01.binproto | Bin 0 -> 431 bytes .../chat_item_simple_updates_01.txtproto | 127 +++ .../chat_item_simple_updates_02.binproto | Bin 0 -> 431 bytes .../chat_item_simple_updates_02.txtproto | 127 +++ .../chat_item_simple_updates_03.binproto | Bin 0 -> 424 bytes .../chat_item_simple_updates_03.txtproto | 126 +++ .../chat_item_simple_updates_04.binproto | Bin 0 -> 431 bytes .../chat_item_simple_updates_04.txtproto | 127 +++ .../chat_item_simple_updates_05.binproto | Bin 0 -> 431 bytes .../chat_item_simple_updates_05.txtproto | 127 +++ .../chat_item_simple_updates_06.binproto | Bin 0 -> 424 bytes .../chat_item_simple_updates_06.txtproto | 126 +++ .../chat_item_simple_updates_07.binproto | Bin 0 -> 431 bytes .../chat_item_simple_updates_07.txtproto | 127 +++ .../chat_item_simple_updates_08.binproto | Bin 0 -> 431 bytes .../chat_item_simple_updates_08.txtproto | 127 +++ .../chat_item_simple_updates_09.binproto | Bin 0 -> 424 bytes .../chat_item_simple_updates_09.txtproto | 126 +++ .../chat_item_simple_updates_10.binproto | Bin 0 -> 431 bytes .../chat_item_simple_updates_10.txtproto | 127 +++ .../chat_item_simple_updates_11.binproto | Bin 0 -> 431 bytes .../chat_item_simple_updates_11.txtproto | 127 +++ .../chat_item_simple_updates_12.binproto | Bin 0 -> 424 bytes .../chat_item_simple_updates_12.txtproto | 126 +++ .../chat_item_simple_updates_13.binproto | Bin 0 -> 431 bytes .../chat_item_simple_updates_13.txtproto | 127 +++ .../chat_item_simple_updates_14.binproto | Bin 0 -> 431 bytes .../chat_item_simple_updates_14.txtproto | 127 +++ .../chat_item_simple_updates_15.binproto | Bin 0 -> 424 bytes .../chat_item_simple_updates_15.txtproto | 126 +++ ...tandard_message_formatted_text_00.binproto | Bin 0 -> 825 bytes ...tandard_message_formatted_text_00.txtproto | 184 ++++ ...tandard_message_formatted_text_01.binproto | Bin 0 -> 845 bytes ...tandard_message_formatted_text_01.txtproto | 188 ++++ ...tandard_message_formatted_text_02.binproto | Bin 0 -> 851 bytes ...tandard_message_formatted_text_02.txtproto | 200 +++++ ...tandard_message_formatted_text_03.binproto | Bin 0 -> 861 bytes ...tandard_message_formatted_text_03.txtproto | 213 +++++ ...tandard_message_formatted_text_04.binproto | Bin 0 -> 897 bytes ...tandard_message_formatted_text_04.txtproto | 210 +++++ ...tandard_message_formatted_text_05.binproto | Bin 0 -> 863 bytes ...tandard_message_formatted_text_05.txtproto | 219 +++++ ...tandard_message_formatted_text_06.binproto | Bin 0 -> 833 bytes ...tandard_message_formatted_text_06.txtproto | 192 ++++ ...tandard_message_formatted_text_07.binproto | Bin 0 -> 845 bytes ...tandard_message_formatted_text_07.txtproto | 202 +++++ ...tandard_message_formatted_text_08.binproto | Bin 0 -> 867 bytes ...tandard_message_formatted_text_08.txtproto | 200 +++++ ...tandard_message_formatted_text_09.binproto | Bin 0 -> 861 bytes ...tandard_message_formatted_text_09.txtproto | 212 +++++ ...tandard_message_formatted_text_10.binproto | Bin 0 -> 881 bytes ...tandard_message_formatted_text_10.txtproto | 211 +++++ ...tandard_message_formatted_text_11.binproto | Bin 0 -> 875 bytes ...tandard_message_formatted_text_11.txtproto | 215 +++++ ...tandard_message_formatted_text_12.binproto | Bin 0 -> 833 bytes ...tandard_message_formatted_text_12.txtproto | 196 +++++ ...tandard_message_formatted_text_13.binproto | Bin 0 -> 845 bytes ...tandard_message_formatted_text_13.txtproto | 202 +++++ ...tandard_message_formatted_text_14.binproto | Bin 0 -> 855 bytes ...tandard_message_formatted_text_14.txtproto | 204 +++++ ...tem_standard_message_long_text_00.binproto | Bin 0 -> 447 bytes ...tem_standard_message_long_text_00.txtproto | 132 +++ ...tem_standard_message_long_text_01.binproto | Bin 0 -> 565 bytes ...tem_standard_message_long_text_01.txtproto | 147 ++++ ...tem_standard_message_long_text_02.binproto | Bin 0 -> 666 bytes ...tem_standard_message_long_text_02.txtproto | 165 ++++ ...tem_standard_message_long_text_03.binproto | Bin 0 -> 610 bytes ...tem_standard_message_long_text_03.txtproto | 154 ++++ ...tem_standard_message_long_text_04.binproto | Bin 0 -> 602 bytes ...tem_standard_message_long_text_04.txtproto | 157 ++++ ...tem_standard_message_long_text_05.binproto | Bin 0 -> 605 bytes ...tem_standard_message_long_text_05.txtproto | 161 ++++ ...tem_standard_message_long_text_06.binproto | Bin 0 -> 593 bytes ...tem_standard_message_long_text_06.txtproto | 153 ++++ ...tem_standard_message_long_text_07.binproto | Bin 0 -> 567 bytes ...tem_standard_message_long_text_07.txtproto | 159 ++++ ...tem_standard_message_long_text_08.binproto | Bin 0 -> 581 bytes ...tem_standard_message_long_text_08.txtproto | 158 ++++ ...tem_standard_message_long_text_09.binproto | Bin 0 -> 444 bytes ...tem_standard_message_long_text_09.txtproto | 137 +++ ...tem_standard_message_long_text_10.binproto | Bin 0 -> 569 bytes ...tem_standard_message_long_text_10.txtproto | 152 ++++ ...tem_standard_message_long_text_11.binproto | Bin 0 -> 668 bytes ...tem_standard_message_long_text_11.txtproto | 166 ++++ ...tem_standard_message_long_text_12.binproto | Bin 0 -> 608 bytes ...tem_standard_message_long_text_12.txtproto | 154 ++++ ...tem_standard_message_long_text_13.binproto | Bin 0 -> 597 bytes ...tem_standard_message_long_text_13.txtproto | 158 ++++ ...tem_standard_message_long_text_14.binproto | Bin 0 -> 610 bytes ...tem_standard_message_long_text_14.txtproto | 161 ++++ ...rd_message_special_attachments_00.binproto | Bin 0 -> 546 bytes ...rd_message_special_attachments_00.txtproto | 144 +++ ...rd_message_special_attachments_01.binproto | Bin 0 -> 642 bytes ...rd_message_special_attachments_01.txtproto | 158 ++++ ...rd_message_special_attachments_02.binproto | Bin 0 -> 641 bytes ...rd_message_special_attachments_02.txtproto | 167 ++++ ...rd_message_special_attachments_03.binproto | Bin 0 -> 585 bytes ...rd_message_special_attachments_03.txtproto | 153 ++++ ...rd_message_special_attachments_04.binproto | Bin 0 -> 579 bytes ...rd_message_special_attachments_04.txtproto | 157 ++++ ...rd_message_special_attachments_05.binproto | Bin 0 -> 632 bytes ...rd_message_special_attachments_05.txtproto | 170 ++++ ...rd_message_special_attachments_06.binproto | Bin 0 -> 532 bytes ...rd_message_special_attachments_06.txtproto | 152 ++++ ...rd_message_special_attachments_07.binproto | Bin 0 -> 565 bytes ...rd_message_special_attachments_07.txtproto | 158 ++++ ...rd_message_special_attachments_08.binproto | Bin 0 -> 576 bytes ...rd_message_special_attachments_08.txtproto | 159 ++++ ...rd_message_special_attachments_09.binproto | Bin 0 -> 624 bytes ...rd_message_special_attachments_09.txtproto | 157 ++++ ...rd_message_special_attachments_10.binproto | Bin 0 -> 636 bytes ...rd_message_special_attachments_10.txtproto | 163 ++++ ...rd_message_special_attachments_11.binproto | Bin 0 -> 614 bytes ...rd_message_special_attachments_11.txtproto | 164 ++++ ...rd_message_special_attachments_12.binproto | Bin 0 -> 554 bytes ...rd_message_special_attachments_12.txtproto | 151 ++++ ...rd_message_special_attachments_13.binproto | Bin 0 -> 613 bytes ...rd_message_special_attachments_13.txtproto | 164 ++++ ...rd_message_special_attachments_14.binproto | Bin 0 -> 578 bytes ...rd_message_special_attachments_14.txtproto | 167 ++++ ...d_message_standard_attachments_00.binproto | Bin 0 -> 545 bytes ...d_message_standard_attachments_00.txtproto | 144 +++ ...d_message_standard_attachments_01.binproto | Bin 0 -> 950 bytes ...d_message_standard_attachments_01.txtproto | 199 +++++ ...d_message_standard_attachments_02.binproto | Bin 0 -> 1040 bytes ...d_message_standard_attachments_02.txtproto | 230 +++++ ...d_message_standard_attachments_03.binproto | Bin 0 -> 641 bytes ...d_message_standard_attachments_03.txtproto | 160 ++++ ...d_message_standard_attachments_04.binproto | Bin 0 -> 884 bytes ...d_message_standard_attachments_04.txtproto | 195 +++++ ...d_message_standard_attachments_05.binproto | Bin 0 -> 1110 bytes ...d_message_standard_attachments_05.txtproto | 239 +++++ ...d_message_standard_attachments_06.binproto | Bin 0 -> 622 bytes ...d_message_standard_attachments_06.txtproto | 158 ++++ ...d_message_standard_attachments_07.binproto | Bin 0 -> 872 bytes ...d_message_standard_attachments_07.txtproto | 200 +++++ ...d_message_standard_attachments_08.binproto | Bin 0 -> 1126 bytes ...d_message_standard_attachments_08.txtproto | 233 +++++ ...d_message_standard_attachments_09.binproto | Bin 0 -> 579 bytes ...d_message_standard_attachments_09.txtproto | 156 ++++ ...d_message_standard_attachments_10.binproto | Bin 0 -> 838 bytes ...d_message_standard_attachments_10.txtproto | 199 +++++ ...d_message_standard_attachments_11.binproto | Bin 0 -> 1169 bytes ...d_message_standard_attachments_11.txtproto | 236 +++++ ...d_message_standard_attachments_12.binproto | Bin 0 -> 557 bytes ...d_message_standard_attachments_12.txtproto | 151 ++++ ...d_message_standard_attachments_13.binproto | Bin 0 -> 810 bytes ...d_message_standard_attachments_13.txtproto | 199 +++++ ...d_message_standard_attachments_14.binproto | Bin 0 -> 1193 bytes ...d_message_standard_attachments_14.txtproto | 239 +++++ ...tem_standard_message_text_only_00.binproto | Bin 0 -> 447 bytes ...tem_standard_message_text_only_00.txtproto | 132 +++ ...tem_standard_message_text_only_01.binproto | Bin 0 -> 469 bytes ...tem_standard_message_text_only_01.txtproto | 138 +++ ...tem_standard_message_text_only_02.binproto | Bin 0 -> 482 bytes ...tem_standard_message_text_only_02.txtproto | 147 ++++ ...tem_standard_message_text_only_03.binproto | Bin 0 -> 444 bytes ...tem_standard_message_text_only_03.txtproto | 137 +++ ...tem_standard_message_text_only_04.binproto | Bin 0 -> 473 bytes ...tem_standard_message_text_only_04.txtproto | 143 +++ ...tem_standard_message_text_only_05.binproto | Bin 0 -> 491 bytes ...tem_standard_message_text_only_05.txtproto | 150 ++++ ...tem_standard_message_text_only_06.binproto | Bin 0 -> 442 bytes ...tem_standard_message_text_only_06.txtproto | 135 +++ ...tem_standard_message_text_only_07.binproto | Bin 0 -> 470 bytes ...tem_standard_message_text_only_07.txtproto | 145 +++ ...tem_standard_message_text_only_08.binproto | Bin 0 -> 487 bytes ...tem_standard_message_text_only_08.txtproto | 147 ++++ ...tem_standard_message_text_only_09.binproto | Bin 0 -> 444 bytes ...tem_standard_message_text_only_09.txtproto | 137 +++ ...tem_standard_message_text_only_10.binproto | Bin 0 -> 473 bytes ...tem_standard_message_text_only_10.txtproto | 143 +++ ...tem_standard_message_text_only_11.binproto | Bin 0 -> 484 bytes ...tem_standard_message_text_only_11.txtproto | 148 ++++ ...tem_standard_message_text_only_12.binproto | Bin 0 -> 442 bytes ...tem_standard_message_text_only_12.txtproto | 137 +++ ...tem_standard_message_text_only_13.binproto | Bin 0 -> 468 bytes ...tem_standard_message_text_only_13.txtproto | 144 +++ ...tem_standard_message_text_only_14.binproto | Bin 0 -> 496 bytes ...tem_standard_message_text_only_14.txtproto | 150 ++++ ...em_standard_message_with_edits_00.binproto | Bin 0 -> 484 bytes ...em_standard_message_with_edits_00.txtproto | 150 ++++ ...em_standard_message_with_edits_01.binproto | Bin 0 -> 576 bytes ...em_standard_message_with_edits_01.txtproto | 178 ++++ ...em_standard_message_with_edits_02.binproto | Bin 0 -> 498 bytes ...em_standard_message_with_edits_02.txtproto | 150 ++++ ...em_standard_message_with_quote_00.binproto | Bin 0 -> 490 bytes ...em_standard_message_with_quote_00.txtproto | 158 ++++ ...em_standard_message_with_quote_01.binproto | Bin 0 -> 515 bytes ...em_standard_message_with_quote_01.txtproto | 166 ++++ ...em_standard_message_with_quote_02.binproto | Bin 0 -> 573 bytes ...em_standard_message_with_quote_02.txtproto | 175 ++++ ...em_standard_message_with_quote_03.binproto | Bin 0 -> 487 bytes ...em_standard_message_with_quote_03.txtproto | 163 ++++ ...em_standard_message_with_quote_04.binproto | Bin 0 -> 519 bytes ...em_standard_message_with_quote_04.txtproto | 171 ++++ ...em_standard_message_with_quote_05.binproto | Bin 0 -> 582 bytes ...em_standard_message_with_quote_05.txtproto | 178 ++++ ...em_standard_message_with_quote_06.binproto | Bin 0 -> 485 bytes ...em_standard_message_with_quote_06.txtproto | 161 ++++ ...em_standard_message_with_quote_07.binproto | Bin 0 -> 516 bytes ...em_standard_message_with_quote_07.txtproto | 173 ++++ ...em_standard_message_with_quote_08.binproto | Bin 0 -> 578 bytes ...em_standard_message_with_quote_08.txtproto | 175 ++++ ...em_standard_message_with_quote_09.binproto | Bin 0 -> 487 bytes ...em_standard_message_with_quote_09.txtproto | 163 ++++ ...em_standard_message_with_quote_10.binproto | Bin 0 -> 519 bytes ...em_standard_message_with_quote_10.txtproto | 171 ++++ ...em_standard_message_with_quote_11.binproto | Bin 0 -> 575 bytes ...em_standard_message_with_quote_11.txtproto | 176 ++++ ...em_standard_message_with_quote_12.binproto | Bin 0 -> 485 bytes ...em_standard_message_with_quote_12.txtproto | 163 ++++ ...em_standard_message_with_quote_13.binproto | Bin 0 -> 514 bytes ...em_standard_message_with_quote_13.txtproto | 172 ++++ ...em_standard_message_with_quote_14.binproto | Bin 0 -> 587 bytes ...em_standard_message_with_quote_14.txtproto | 178 ++++ .../chat_item_sticker_message_00.binproto | Bin 0 -> 604 bytes .../chat_item_sticker_message_00.txtproto | 144 +++ .../chat_item_sticker_message_01.binproto | Bin 0 -> 697 bytes .../chat_item_sticker_message_01.txtproto | 159 ++++ .../chat_item_sticker_message_02.binproto | Bin 0 -> 710 bytes .../chat_item_sticker_message_02.txtproto | 167 ++++ .../chat_item_sticker_message_03.binproto | Bin 0 -> 668 bytes .../chat_item_sticker_message_03.txtproto | 155 ++++ .../chat_item_sticker_message_04.binproto | Bin 0 -> 637 bytes .../chat_item_sticker_message_04.txtproto | 157 ++++ .../chat_item_sticker_message_05.binproto | Bin 0 -> 702 bytes .../chat_item_sticker_message_05.txtproto | 171 ++++ .../chat_item_sticker_message_06.binproto | Bin 0 -> 599 bytes .../chat_item_sticker_message_06.txtproto | 152 ++++ .../chat_item_sticker_message_07.binproto | Bin 0 -> 616 bytes .../chat_item_sticker_message_07.txtproto | 159 ++++ .../chat_item_sticker_message_08.binproto | Bin 0 -> 633 bytes .../chat_item_sticker_message_08.txtproto | 159 ++++ .../chat_item_sticker_message_09.binproto | Bin 0 -> 679 bytes .../chat_item_sticker_message_09.txtproto | 158 ++++ .../chat_item_sticker_message_10.binproto | Bin 0 -> 705 bytes .../chat_item_sticker_message_10.txtproto | 163 ++++ .../chat_item_sticker_message_11.binproto | Bin 0 -> 697 bytes .../chat_item_sticker_message_11.txtproto | 166 ++++ .../chat_item_sticker_message_12.binproto | Bin 0 -> 613 bytes .../chat_item_sticker_message_12.txtproto | 151 ++++ .../chat_item_sticker_message_13.binproto | Bin 0 -> 683 bytes .../chat_item_sticker_message_13.txtproto | 165 ++++ .../chat_item_sticker_message_14.binproto | Bin 0 -> 642 bytes .../chat_item_sticker_message_14.txtproto | 167 ++++ .../chat_item_thread_merge_update_00.binproto | Bin 0 -> 428 bytes .../chat_item_thread_merge_update_00.txtproto | 126 +++ .../chat_item_thread_merge_update_01.binproto | Bin 0 -> 436 bytes .../chat_item_thread_merge_update_01.txtproto | 127 +++ .../chat_item_thread_merge_update_02.binproto | Bin 0 -> 435 bytes .../chat_item_thread_merge_update_02.txtproto | 127 +++ ...iration-timer-chat-update-message.binproto | Bin 236 -> 0 bytes ...ration-timer-chat-update-message.jsonproto | 106 --- .../incoming-message-with-edits.binproto | Bin 758 -> 0 bytes .../incoming-message-with-edits.jsonproto | 237 ----- ...arned-profile-chat-update-message.binproto | Bin 251 -> 0 bytes ...rned-profile-chat-update-message.jsonproto | 106 --- .../outgoing-message-with-edits.binproto | Bin 361 -> 0 bytes .../outgoing-message-with-edits.jsonproto | 168 ---- ...rofile-change-chat-update-message.binproto | Bin 240 -> 0 bytes ...ofile-change-chat-update-message.jsonproto | 94 -- test-cases/recipient_call_link_00.binproto | Bin 0 -> 328 bytes test-cases/recipient_call_link_00.txtproto | 100 +++ test-cases/recipient_call_link_01.binproto | Bin 0 -> 382 bytes test-cases/recipient_call_link_01.txtproto | 102 +++ test-cases/recipient_call_link_02.binproto | Bin 0 -> 349 bytes test-cases/recipient_call_link_02.txtproto | 101 +++ test-cases/recipient_contacts_00.binproto | Bin 0 -> 361 bytes test-cases/recipient_contacts_00.txtproto | 106 +++ test-cases/recipient_contacts_01.binproto | Bin 0 -> 413 bytes test-cases/recipient_contacts_01.txtproto | 107 +++ test-cases/recipient_contacts_02.binproto | Bin 0 -> 414 bytes test-cases/recipient_contacts_02.txtproto | 111 +++ test-cases/recipient_contacts_03.binproto | Bin 0 -> 422 bytes test-cases/recipient_contacts_03.txtproto | 108 +++ .../recipient_distribution_list_00.binproto | Bin 0 -> 632 bytes .../recipient_distribution_list_00.txtproto | 148 ++++ .../recipient_distribution_list_01.binproto | Bin 0 -> 645 bytes .../recipient_distribution_list_01.txtproto | 152 ++++ .../recipient_distribution_list_02.binproto | Bin 0 -> 647 bytes .../recipient_distribution_list_02.txtproto | 154 ++++ .../recipient_distribution_list_03.binproto | Bin 0 -> 645 bytes .../recipient_distribution_list_03.txtproto | 152 ++++ .../recipient_distribution_list_04.binproto | Bin 0 -> 649 bytes .../recipient_distribution_list_04.txtproto | 156 ++++ test-cases/recipient_groups_00.binproto | Bin 0 -> 1134 bytes test-cases/recipient_groups_00.txtproto | 227 +++++ test-cases/recipient_groups_01.binproto | Bin 0 -> 1371 bytes test-cases/recipient_groups_01.txtproto | 256 ++++++ test-cases/recipient_groups_02.binproto | Bin 0 -> 1291 bytes test-cases/recipient_groups_02.txtproto | 240 +++++ .../registered-blocked-contact.binproto | Bin 252 -> 0 bytes .../registered-blocked-contact.jsonproto | 90 -- ...on-switchover-chat-update-message.binproto | Bin 222 -> 0 bytes ...n-switchover-chat-update-message.jsonproto | 93 -- .../simple-chat-update-message.binproto | Bin 633 -> 0 bytes .../simple-chat-update-message.jsonproto | 391 --------- ...te-release-notes-donation-request.binproto | Bin 144 -> 0 bytes ...e-release-notes-donation-request.jsonproto | 80 -- test-cases/standard_frames.binproto | Bin 0 -> 303 bytes test-cases/standard_frames.txtproto | 90 ++ test-cases/sticker_pack_00.binproto | Bin 0 -> 358 bytes test-cases/sticker_pack_00.txtproto | 97 +++ test-cases/sticker_pack_01.binproto | Bin 0 -> 358 bytes test-cases/sticker_pack_01.txtproto | 97 +++ test-cases/sticker_pack_02.binproto | Bin 0 -> 358 bytes test-cases/sticker_pack_02.txtproto | 97 +++ test-cases/story-distribution-list.binproto | Bin 461 -> 0 bytes test-cases/story-distribution-list.jsonproto | 136 --- .../thread-merge-chat-update-message.binproto | Bin 222 -> 0 bytes ...thread-merge-chat-update-message.jsonproto | 93 -- test-cases/unregistered-contact.binproto | Bin 257 -> 0 bytes test-cases/unregistered-contact.jsonproto | 92 -- 641 files changed, 43859 insertions(+), 3146 deletions(-) create mode 100644 .editorconfig delete mode 100644 Cargo.lock delete mode 100644 Cargo.toml create mode 100644 build.gradle.kts delete mode 100644 converter/Cargo.toml delete mode 100644 converter/build.rs delete mode 100644 converter/src/bin/binproto_to_json.rs delete mode 100644 converter/src/bin/json_to_binproto.rs delete mode 100644 converter/src/lib.rs delete mode 100644 converter/src/parse.rs delete mode 100644 converter/src/proto.rs delete mode 120000 converter/src/proto/backup.proto create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat delete mode 100755 scripts/generate-base64-bytes.sh delete mode 100755 scripts/generate-base64-uuid.sh delete mode 100755 scripts/generate-binprotos.sh delete mode 100755 scripts/generate-single-binproto.sh create mode 100644 src/main/kotlin/Main.kt create mode 100644 src/main/kotlin/Permutations.kt create mode 100644 src/main/kotlin/SeededRandom.kt create mode 100644 src/main/kotlin/StandardFrames.kt create mode 100644 src/main/kotlin/TestCase.kt create mode 100644 src/main/kotlin/Util.kt create mode 100644 src/main/kotlin/tests/AccountDataTestCase.kt create mode 100644 src/main/kotlin/tests/AdHocCallTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemContactMessageTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemExpirationTimerUpdateTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemGiftBadgeTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemGroupCallUpdateTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemIndividualCallUpdateTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemLearnedProfileUpdateTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemPaymentNotificationTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemProfileChangeUpdateTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemRemoteDeleteTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemSessionSwitchoverUpdateTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemSimpleUpdatesTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemStandardMessageFormattedTextTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemStandardMessageLongTextTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemStandardMessageSpecialAttachmentsTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemStandardMessageStandardAttachmentsTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemStandardMessageTextOnlyTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemStandardMessageWithEditsTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemStandardMessageWithQuoteTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemStickerMessageTestCase.kt create mode 100644 src/main/kotlin/tests/ChatItemThreadMergeUpdateTestCase.kt create mode 100644 src/main/kotlin/tests/ChatTestCase.kt create mode 100644 src/main/kotlin/tests/RecipientCallLinkTestCase.kt create mode 100644 src/main/kotlin/tests/RecipientContactsTestCase.kt create mode 100644 src/main/kotlin/tests/RecipientDistributionListTestCase.kt create mode 100644 src/main/kotlin/tests/RecipientGroupsTestCase.kt create mode 100644 src/main/kotlin/tests/StandardFramesTestCase.kt create mode 100644 src/main/kotlin/tests/StickerPackTestCase.kt rename Backup.proto => src/main/proto/Backup.proto (99%) delete mode 100644 test-cases/account-data.binproto delete mode 100644 test-cases/account-data.jsonproto create mode 100644 test-cases/account_data_00.binproto create mode 100644 test-cases/account_data_00.txtproto create mode 100644 test-cases/account_data_01.binproto create mode 100644 test-cases/account_data_01.txtproto create mode 100644 test-cases/account_data_02.binproto create mode 100644 test-cases/account_data_02.txtproto create mode 100644 test-cases/account_data_03.binproto create mode 100644 test-cases/account_data_03.txtproto create mode 100644 test-cases/account_data_04.binproto create mode 100644 test-cases/account_data_04.txtproto create mode 100644 test-cases/account_data_05.binproto create mode 100644 test-cases/account_data_05.txtproto create mode 100644 test-cases/account_data_06.binproto create mode 100644 test-cases/account_data_06.txtproto create mode 100644 test-cases/account_data_07.binproto create mode 100644 test-cases/account_data_07.txtproto create mode 100644 test-cases/account_data_08.binproto create mode 100644 test-cases/account_data_08.txtproto create mode 100644 test-cases/account_data_09.binproto create mode 100644 test-cases/account_data_09.txtproto create mode 100644 test-cases/account_data_10.binproto create mode 100644 test-cases/account_data_10.txtproto create mode 100644 test-cases/account_data_11.binproto create mode 100644 test-cases/account_data_11.txtproto create mode 100644 test-cases/account_data_12.binproto create mode 100644 test-cases/account_data_12.txtproto create mode 100644 test-cases/account_data_13.binproto create mode 100644 test-cases/account_data_13.txtproto create mode 100644 test-cases/account_data_14.binproto create mode 100644 test-cases/account_data_14.txtproto create mode 100644 test-cases/account_data_15.binproto create mode 100644 test-cases/account_data_15.txtproto create mode 100644 test-cases/account_data_16.binproto create mode 100644 test-cases/account_data_16.txtproto create mode 100644 test-cases/account_data_17.binproto create mode 100644 test-cases/account_data_17.txtproto create mode 100644 test-cases/account_data_18.binproto create mode 100644 test-cases/account_data_18.txtproto create mode 100644 test-cases/account_data_19.binproto create mode 100644 test-cases/account_data_19.txtproto create mode 100644 test-cases/account_data_20.binproto create mode 100644 test-cases/account_data_20.txtproto create mode 100644 test-cases/account_data_21.binproto create mode 100644 test-cases/account_data_21.txtproto create mode 100644 test-cases/account_data_22.binproto create mode 100644 test-cases/account_data_22.txtproto create mode 100644 test-cases/account_data_23.binproto create mode 100644 test-cases/account_data_23.txtproto create mode 100644 test-cases/account_data_24.binproto create mode 100644 test-cases/account_data_24.txtproto create mode 100644 test-cases/account_data_25.binproto create mode 100644 test-cases/account_data_25.txtproto create mode 100644 test-cases/account_data_26.binproto create mode 100644 test-cases/account_data_26.txtproto create mode 100644 test-cases/account_data_27.binproto create mode 100644 test-cases/account_data_27.txtproto create mode 100644 test-cases/account_data_28.binproto create mode 100644 test-cases/account_data_28.txtproto create mode 100644 test-cases/account_data_29.binproto create mode 100644 test-cases/account_data_29.txtproto create mode 100644 test-cases/ad_hoc_call_00.binproto create mode 100644 test-cases/ad_hoc_call_00.txtproto create mode 100644 test-cases/ad_hoc_call_01.binproto create mode 100644 test-cases/ad_hoc_call_01.txtproto create mode 100644 test-cases/ad_hoc_call_02.binproto create mode 100644 test-cases/ad_hoc_call_02.txtproto create mode 100644 test-cases/chat_00.binproto create mode 100644 test-cases/chat_00.txtproto create mode 100644 test-cases/chat_01.binproto create mode 100644 test-cases/chat_01.txtproto create mode 100644 test-cases/chat_02.binproto create mode 100644 test-cases/chat_02.txtproto create mode 100644 test-cases/chat_03.binproto create mode 100644 test-cases/chat_03.txtproto create mode 100644 test-cases/chat_04.binproto create mode 100644 test-cases/chat_04.txtproto create mode 100644 test-cases/chat_05.binproto create mode 100644 test-cases/chat_05.txtproto create mode 100644 test-cases/chat_06.binproto create mode 100644 test-cases/chat_06.txtproto create mode 100644 test-cases/chat_07.binproto create mode 100644 test-cases/chat_07.txtproto create mode 100644 test-cases/chat_08.binproto create mode 100644 test-cases/chat_08.txtproto create mode 100644 test-cases/chat_09.binproto create mode 100644 test-cases/chat_09.txtproto create mode 100644 test-cases/chat_10.binproto create mode 100644 test-cases/chat_10.txtproto create mode 100644 test-cases/chat_11.binproto create mode 100644 test-cases/chat_11.txtproto create mode 100644 test-cases/chat_12.binproto create mode 100644 test-cases/chat_12.txtproto create mode 100644 test-cases/chat_13.binproto create mode 100644 test-cases/chat_13.txtproto create mode 100644 test-cases/chat_14.binproto create mode 100644 test-cases/chat_14.txtproto create mode 100644 test-cases/chat_15.binproto create mode 100644 test-cases/chat_15.txtproto create mode 100644 test-cases/chat_16.binproto create mode 100644 test-cases/chat_16.txtproto create mode 100644 test-cases/chat_17.binproto create mode 100644 test-cases/chat_17.txtproto create mode 100644 test-cases/chat_18.binproto create mode 100644 test-cases/chat_18.txtproto create mode 100644 test-cases/chat_19.binproto create mode 100644 test-cases/chat_19.txtproto create mode 100644 test-cases/chat_20.binproto create mode 100644 test-cases/chat_20.txtproto create mode 100644 test-cases/chat_21.binproto create mode 100644 test-cases/chat_21.txtproto create mode 100644 test-cases/chat_22.binproto create mode 100644 test-cases/chat_22.txtproto create mode 100644 test-cases/chat_23.binproto create mode 100644 test-cases/chat_23.txtproto create mode 100644 test-cases/chat_24.binproto create mode 100644 test-cases/chat_24.txtproto create mode 100644 test-cases/chat_25.binproto create mode 100644 test-cases/chat_25.txtproto create mode 100644 test-cases/chat_26.binproto create mode 100644 test-cases/chat_26.txtproto create mode 100644 test-cases/chat_27.binproto create mode 100644 test-cases/chat_27.txtproto create mode 100644 test-cases/chat_28.binproto create mode 100644 test-cases/chat_28.txtproto create mode 100644 test-cases/chat_item_contact_message_00.binproto create mode 100644 test-cases/chat_item_contact_message_00.txtproto create mode 100644 test-cases/chat_item_contact_message_01.binproto create mode 100644 test-cases/chat_item_contact_message_01.txtproto create mode 100644 test-cases/chat_item_contact_message_02.binproto create mode 100644 test-cases/chat_item_contact_message_02.txtproto create mode 100644 test-cases/chat_item_contact_message_03.binproto create mode 100644 test-cases/chat_item_contact_message_03.txtproto create mode 100644 test-cases/chat_item_contact_message_04.binproto create mode 100644 test-cases/chat_item_contact_message_04.txtproto create mode 100644 test-cases/chat_item_contact_message_05.binproto create mode 100644 test-cases/chat_item_contact_message_05.txtproto create mode 100644 test-cases/chat_item_contact_message_06.binproto create mode 100644 test-cases/chat_item_contact_message_06.txtproto create mode 100644 test-cases/chat_item_contact_message_07.binproto create mode 100644 test-cases/chat_item_contact_message_07.txtproto create mode 100644 test-cases/chat_item_contact_message_08.binproto create mode 100644 test-cases/chat_item_contact_message_08.txtproto create mode 100644 test-cases/chat_item_contact_message_09.binproto create mode 100644 test-cases/chat_item_contact_message_09.txtproto create mode 100644 test-cases/chat_item_contact_message_10.binproto create mode 100644 test-cases/chat_item_contact_message_10.txtproto create mode 100644 test-cases/chat_item_contact_message_11.binproto create mode 100644 test-cases/chat_item_contact_message_11.txtproto create mode 100644 test-cases/chat_item_contact_message_12.binproto create mode 100644 test-cases/chat_item_contact_message_12.txtproto create mode 100644 test-cases/chat_item_contact_message_13.binproto create mode 100644 test-cases/chat_item_contact_message_13.txtproto create mode 100644 test-cases/chat_item_contact_message_14.binproto create mode 100644 test-cases/chat_item_contact_message_14.txtproto create mode 100644 test-cases/chat_item_expiration_timer_update_00.binproto create mode 100644 test-cases/chat_item_expiration_timer_update_00.txtproto create mode 100644 test-cases/chat_item_expiration_timer_update_01.binproto create mode 100644 test-cases/chat_item_expiration_timer_update_01.txtproto create mode 100644 test-cases/chat_item_expiration_timer_update_02.binproto create mode 100644 test-cases/chat_item_expiration_timer_update_02.txtproto create mode 100644 test-cases/chat_item_group_call_update_00.binproto create mode 100644 test-cases/chat_item_group_call_update_00.txtproto create mode 100644 test-cases/chat_item_group_call_update_01.binproto create mode 100644 test-cases/chat_item_group_call_update_01.txtproto create mode 100644 test-cases/chat_item_group_call_update_02.binproto create mode 100644 test-cases/chat_item_group_call_update_02.txtproto create mode 100644 test-cases/chat_item_group_call_update_03.binproto create mode 100644 test-cases/chat_item_group_call_update_03.txtproto create mode 100644 test-cases/chat_item_group_call_update_04.binproto create mode 100644 test-cases/chat_item_group_call_update_04.txtproto create mode 100644 test-cases/chat_item_group_call_update_05.binproto create mode 100644 test-cases/chat_item_group_call_update_05.txtproto create mode 100644 test-cases/chat_item_group_call_update_06.binproto create mode 100644 test-cases/chat_item_group_call_update_06.txtproto create mode 100644 test-cases/chat_item_group_call_update_07.binproto create mode 100644 test-cases/chat_item_group_call_update_07.txtproto create mode 100644 test-cases/chat_item_individual_call_update_00.binproto create mode 100644 test-cases/chat_item_individual_call_update_00.txtproto create mode 100644 test-cases/chat_item_individual_call_update_01.binproto create mode 100644 test-cases/chat_item_individual_call_update_01.txtproto create mode 100644 test-cases/chat_item_individual_call_update_02.binproto create mode 100644 test-cases/chat_item_individual_call_update_02.txtproto create mode 100644 test-cases/chat_item_individual_call_update_03.binproto create mode 100644 test-cases/chat_item_individual_call_update_03.txtproto create mode 100644 test-cases/chat_item_learned_profile_update_00.binproto create mode 100644 test-cases/chat_item_learned_profile_update_00.txtproto create mode 100644 test-cases/chat_item_learned_profile_update_01.binproto create mode 100644 test-cases/chat_item_learned_profile_update_01.txtproto create mode 100644 test-cases/chat_item_learned_profile_update_02.binproto create mode 100644 test-cases/chat_item_learned_profile_update_02.txtproto create mode 100644 test-cases/chat_item_learned_profile_update_03.binproto create mode 100644 test-cases/chat_item_learned_profile_update_03.txtproto create mode 100644 test-cases/chat_item_payment_notification_00.binproto create mode 100644 test-cases/chat_item_payment_notification_00.txtproto create mode 100644 test-cases/chat_item_payment_notification_01.binproto create mode 100644 test-cases/chat_item_payment_notification_01.txtproto create mode 100644 test-cases/chat_item_payment_notification_02.binproto create mode 100644 test-cases/chat_item_payment_notification_02.txtproto create mode 100644 test-cases/chat_item_payment_notification_03.binproto create mode 100644 test-cases/chat_item_payment_notification_03.txtproto create mode 100644 test-cases/chat_item_payment_notification_04.binproto create mode 100644 test-cases/chat_item_payment_notification_04.txtproto create mode 100644 test-cases/chat_item_payment_notification_05.binproto create mode 100644 test-cases/chat_item_payment_notification_05.txtproto create mode 100644 test-cases/chat_item_payment_notification_06.binproto create mode 100644 test-cases/chat_item_payment_notification_06.txtproto create mode 100644 test-cases/chat_item_payment_notification_07.binproto create mode 100644 test-cases/chat_item_payment_notification_07.txtproto create mode 100644 test-cases/chat_item_payment_notification_08.binproto create mode 100644 test-cases/chat_item_payment_notification_08.txtproto create mode 100644 test-cases/chat_item_payment_notification_09.binproto create mode 100644 test-cases/chat_item_payment_notification_09.txtproto create mode 100644 test-cases/chat_item_payment_notification_10.binproto create mode 100644 test-cases/chat_item_payment_notification_10.txtproto create mode 100644 test-cases/chat_item_payment_notification_11.binproto create mode 100644 test-cases/chat_item_payment_notification_11.txtproto create mode 100644 test-cases/chat_item_payment_notification_12.binproto create mode 100644 test-cases/chat_item_payment_notification_12.txtproto create mode 100644 test-cases/chat_item_payment_notification_13.binproto create mode 100644 test-cases/chat_item_payment_notification_13.txtproto create mode 100644 test-cases/chat_item_payment_notification_14.binproto create mode 100644 test-cases/chat_item_payment_notification_14.txtproto create mode 100644 test-cases/chat_item_profile_change_update_00.binproto create mode 100644 test-cases/chat_item_profile_change_update_00.txtproto create mode 100644 test-cases/chat_item_profile_change_update_01.binproto create mode 100644 test-cases/chat_item_profile_change_update_01.txtproto create mode 100644 test-cases/chat_item_profile_change_update_02.binproto create mode 100644 test-cases/chat_item_profile_change_update_02.txtproto create mode 100644 test-cases/chat_item_remote_delete_00.binproto create mode 100644 test-cases/chat_item_remote_delete_00.txtproto create mode 100644 test-cases/chat_item_remote_delete_01.binproto create mode 100644 test-cases/chat_item_remote_delete_01.txtproto create mode 100644 test-cases/chat_item_remote_delete_02.binproto create mode 100644 test-cases/chat_item_remote_delete_02.txtproto create mode 100644 test-cases/chat_item_remote_delete_03.binproto create mode 100644 test-cases/chat_item_remote_delete_03.txtproto create mode 100644 test-cases/chat_item_remote_delete_04.binproto create mode 100644 test-cases/chat_item_remote_delete_04.txtproto create mode 100644 test-cases/chat_item_remote_delete_05.binproto create mode 100644 test-cases/chat_item_remote_delete_05.txtproto create mode 100644 test-cases/chat_item_remote_delete_06.binproto create mode 100644 test-cases/chat_item_remote_delete_06.txtproto create mode 100644 test-cases/chat_item_remote_delete_07.binproto create mode 100644 test-cases/chat_item_remote_delete_07.txtproto create mode 100644 test-cases/chat_item_remote_delete_08.binproto create mode 100644 test-cases/chat_item_remote_delete_08.txtproto create mode 100644 test-cases/chat_item_remote_delete_09.binproto create mode 100644 test-cases/chat_item_remote_delete_09.txtproto create mode 100644 test-cases/chat_item_remote_delete_10.binproto create mode 100644 test-cases/chat_item_remote_delete_10.txtproto create mode 100644 test-cases/chat_item_remote_delete_11.binproto create mode 100644 test-cases/chat_item_remote_delete_11.txtproto create mode 100644 test-cases/chat_item_remote_delete_12.binproto create mode 100644 test-cases/chat_item_remote_delete_12.txtproto create mode 100644 test-cases/chat_item_remote_delete_13.binproto create mode 100644 test-cases/chat_item_remote_delete_13.txtproto create mode 100644 test-cases/chat_item_remote_delete_14.binproto create mode 100644 test-cases/chat_item_remote_delete_14.txtproto create mode 100644 test-cases/chat_item_session_switchover_update_00.binproto create mode 100644 test-cases/chat_item_session_switchover_update_00.txtproto create mode 100644 test-cases/chat_item_session_switchover_update_01.binproto create mode 100644 test-cases/chat_item_session_switchover_update_01.txtproto create mode 100644 test-cases/chat_item_session_switchover_update_02.binproto create mode 100644 test-cases/chat_item_session_switchover_update_02.txtproto create mode 100644 test-cases/chat_item_simple_updates_00.binproto create mode 100644 test-cases/chat_item_simple_updates_00.txtproto create mode 100644 test-cases/chat_item_simple_updates_01.binproto create mode 100644 test-cases/chat_item_simple_updates_01.txtproto create mode 100644 test-cases/chat_item_simple_updates_02.binproto create mode 100644 test-cases/chat_item_simple_updates_02.txtproto create mode 100644 test-cases/chat_item_simple_updates_03.binproto create mode 100644 test-cases/chat_item_simple_updates_03.txtproto create mode 100644 test-cases/chat_item_simple_updates_04.binproto create mode 100644 test-cases/chat_item_simple_updates_04.txtproto create mode 100644 test-cases/chat_item_simple_updates_05.binproto create mode 100644 test-cases/chat_item_simple_updates_05.txtproto create mode 100644 test-cases/chat_item_simple_updates_06.binproto create mode 100644 test-cases/chat_item_simple_updates_06.txtproto create mode 100644 test-cases/chat_item_simple_updates_07.binproto create mode 100644 test-cases/chat_item_simple_updates_07.txtproto create mode 100644 test-cases/chat_item_simple_updates_08.binproto create mode 100644 test-cases/chat_item_simple_updates_08.txtproto create mode 100644 test-cases/chat_item_simple_updates_09.binproto create mode 100644 test-cases/chat_item_simple_updates_09.txtproto create mode 100644 test-cases/chat_item_simple_updates_10.binproto create mode 100644 test-cases/chat_item_simple_updates_10.txtproto create mode 100644 test-cases/chat_item_simple_updates_11.binproto create mode 100644 test-cases/chat_item_simple_updates_11.txtproto create mode 100644 test-cases/chat_item_simple_updates_12.binproto create mode 100644 test-cases/chat_item_simple_updates_12.txtproto create mode 100644 test-cases/chat_item_simple_updates_13.binproto create mode 100644 test-cases/chat_item_simple_updates_13.txtproto create mode 100644 test-cases/chat_item_simple_updates_14.binproto create mode 100644 test-cases/chat_item_simple_updates_14.txtproto create mode 100644 test-cases/chat_item_simple_updates_15.binproto create mode 100644 test-cases/chat_item_simple_updates_15.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_00.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_00.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_01.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_01.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_02.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_02.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_03.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_03.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_04.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_04.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_05.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_05.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_06.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_06.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_07.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_07.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_08.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_08.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_09.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_09.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_10.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_10.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_11.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_11.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_12.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_12.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_13.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_13.txtproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_14.binproto create mode 100644 test-cases/chat_item_standard_message_formatted_text_14.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_00.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_00.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_01.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_01.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_02.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_02.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_03.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_03.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_04.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_04.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_05.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_05.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_06.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_06.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_07.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_07.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_08.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_08.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_09.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_09.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_10.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_10.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_11.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_11.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_12.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_12.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_13.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_13.txtproto create mode 100644 test-cases/chat_item_standard_message_long_text_14.binproto create mode 100644 test-cases/chat_item_standard_message_long_text_14.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_00.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_00.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_01.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_01.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_02.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_02.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_03.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_03.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_04.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_04.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_05.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_05.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_06.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_06.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_07.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_07.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_08.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_08.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_09.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_09.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_10.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_10.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_11.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_11.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_12.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_12.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_13.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_13.txtproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_14.binproto create mode 100644 test-cases/chat_item_standard_message_special_attachments_14.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_00.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_00.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_01.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_01.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_02.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_02.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_03.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_03.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_04.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_04.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_05.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_05.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_06.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_06.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_07.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_07.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_08.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_08.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_09.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_09.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_10.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_10.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_11.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_11.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_12.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_12.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_13.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_13.txtproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_14.binproto create mode 100644 test-cases/chat_item_standard_message_standard_attachments_14.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_00.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_00.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_01.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_01.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_02.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_02.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_03.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_03.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_04.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_04.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_05.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_05.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_06.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_06.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_07.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_07.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_08.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_08.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_09.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_09.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_10.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_10.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_11.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_11.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_12.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_12.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_13.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_13.txtproto create mode 100644 test-cases/chat_item_standard_message_text_only_14.binproto create mode 100644 test-cases/chat_item_standard_message_text_only_14.txtproto create mode 100644 test-cases/chat_item_standard_message_with_edits_00.binproto create mode 100644 test-cases/chat_item_standard_message_with_edits_00.txtproto create mode 100644 test-cases/chat_item_standard_message_with_edits_01.binproto create mode 100644 test-cases/chat_item_standard_message_with_edits_01.txtproto create mode 100644 test-cases/chat_item_standard_message_with_edits_02.binproto create mode 100644 test-cases/chat_item_standard_message_with_edits_02.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_00.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_00.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_01.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_01.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_02.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_02.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_03.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_03.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_04.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_04.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_05.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_05.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_06.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_06.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_07.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_07.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_08.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_08.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_09.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_09.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_10.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_10.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_11.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_11.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_12.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_12.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_13.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_13.txtproto create mode 100644 test-cases/chat_item_standard_message_with_quote_14.binproto create mode 100644 test-cases/chat_item_standard_message_with_quote_14.txtproto create mode 100644 test-cases/chat_item_sticker_message_00.binproto create mode 100644 test-cases/chat_item_sticker_message_00.txtproto create mode 100644 test-cases/chat_item_sticker_message_01.binproto create mode 100644 test-cases/chat_item_sticker_message_01.txtproto create mode 100644 test-cases/chat_item_sticker_message_02.binproto create mode 100644 test-cases/chat_item_sticker_message_02.txtproto create mode 100644 test-cases/chat_item_sticker_message_03.binproto create mode 100644 test-cases/chat_item_sticker_message_03.txtproto create mode 100644 test-cases/chat_item_sticker_message_04.binproto create mode 100644 test-cases/chat_item_sticker_message_04.txtproto create mode 100644 test-cases/chat_item_sticker_message_05.binproto create mode 100644 test-cases/chat_item_sticker_message_05.txtproto create mode 100644 test-cases/chat_item_sticker_message_06.binproto create mode 100644 test-cases/chat_item_sticker_message_06.txtproto create mode 100644 test-cases/chat_item_sticker_message_07.binproto create mode 100644 test-cases/chat_item_sticker_message_07.txtproto create mode 100644 test-cases/chat_item_sticker_message_08.binproto create mode 100644 test-cases/chat_item_sticker_message_08.txtproto create mode 100644 test-cases/chat_item_sticker_message_09.binproto create mode 100644 test-cases/chat_item_sticker_message_09.txtproto create mode 100644 test-cases/chat_item_sticker_message_10.binproto create mode 100644 test-cases/chat_item_sticker_message_10.txtproto create mode 100644 test-cases/chat_item_sticker_message_11.binproto create mode 100644 test-cases/chat_item_sticker_message_11.txtproto create mode 100644 test-cases/chat_item_sticker_message_12.binproto create mode 100644 test-cases/chat_item_sticker_message_12.txtproto create mode 100644 test-cases/chat_item_sticker_message_13.binproto create mode 100644 test-cases/chat_item_sticker_message_13.txtproto create mode 100644 test-cases/chat_item_sticker_message_14.binproto create mode 100644 test-cases/chat_item_sticker_message_14.txtproto create mode 100644 test-cases/chat_item_thread_merge_update_00.binproto create mode 100644 test-cases/chat_item_thread_merge_update_00.txtproto create mode 100644 test-cases/chat_item_thread_merge_update_01.binproto create mode 100644 test-cases/chat_item_thread_merge_update_01.txtproto create mode 100644 test-cases/chat_item_thread_merge_update_02.binproto create mode 100644 test-cases/chat_item_thread_merge_update_02.txtproto delete mode 100644 test-cases/expiration-timer-chat-update-message.binproto delete mode 100644 test-cases/expiration-timer-chat-update-message.jsonproto delete mode 100644 test-cases/incoming-message-with-edits.binproto delete mode 100644 test-cases/incoming-message-with-edits.jsonproto delete mode 100644 test-cases/learned-profile-chat-update-message.binproto delete mode 100644 test-cases/learned-profile-chat-update-message.jsonproto delete mode 100644 test-cases/outgoing-message-with-edits.binproto delete mode 100644 test-cases/outgoing-message-with-edits.jsonproto delete mode 100644 test-cases/profile-change-chat-update-message.binproto delete mode 100644 test-cases/profile-change-chat-update-message.jsonproto create mode 100644 test-cases/recipient_call_link_00.binproto create mode 100644 test-cases/recipient_call_link_00.txtproto create mode 100644 test-cases/recipient_call_link_01.binproto create mode 100644 test-cases/recipient_call_link_01.txtproto create mode 100644 test-cases/recipient_call_link_02.binproto create mode 100644 test-cases/recipient_call_link_02.txtproto create mode 100644 test-cases/recipient_contacts_00.binproto create mode 100644 test-cases/recipient_contacts_00.txtproto create mode 100644 test-cases/recipient_contacts_01.binproto create mode 100644 test-cases/recipient_contacts_01.txtproto create mode 100644 test-cases/recipient_contacts_02.binproto create mode 100644 test-cases/recipient_contacts_02.txtproto create mode 100644 test-cases/recipient_contacts_03.binproto create mode 100644 test-cases/recipient_contacts_03.txtproto create mode 100644 test-cases/recipient_distribution_list_00.binproto create mode 100644 test-cases/recipient_distribution_list_00.txtproto create mode 100644 test-cases/recipient_distribution_list_01.binproto create mode 100644 test-cases/recipient_distribution_list_01.txtproto create mode 100644 test-cases/recipient_distribution_list_02.binproto create mode 100644 test-cases/recipient_distribution_list_02.txtproto create mode 100644 test-cases/recipient_distribution_list_03.binproto create mode 100644 test-cases/recipient_distribution_list_03.txtproto create mode 100644 test-cases/recipient_distribution_list_04.binproto create mode 100644 test-cases/recipient_distribution_list_04.txtproto create mode 100644 test-cases/recipient_groups_00.binproto create mode 100644 test-cases/recipient_groups_00.txtproto create mode 100644 test-cases/recipient_groups_01.binproto create mode 100644 test-cases/recipient_groups_01.txtproto create mode 100644 test-cases/recipient_groups_02.binproto create mode 100644 test-cases/recipient_groups_02.txtproto delete mode 100644 test-cases/registered-blocked-contact.binproto delete mode 100644 test-cases/registered-blocked-contact.jsonproto delete mode 100644 test-cases/session-switchover-chat-update-message.binproto delete mode 100644 test-cases/session-switchover-chat-update-message.jsonproto delete mode 100644 test-cases/simple-chat-update-message.binproto delete mode 100644 test-cases/simple-chat-update-message.jsonproto delete mode 100644 test-cases/simple-chat-update-release-notes-donation-request.binproto delete mode 100644 test-cases/simple-chat-update-release-notes-donation-request.jsonproto create mode 100644 test-cases/standard_frames.binproto create mode 100644 test-cases/standard_frames.txtproto create mode 100644 test-cases/sticker_pack_00.binproto create mode 100644 test-cases/sticker_pack_00.txtproto create mode 100644 test-cases/sticker_pack_01.binproto create mode 100644 test-cases/sticker_pack_01.txtproto create mode 100644 test-cases/sticker_pack_02.binproto create mode 100644 test-cases/sticker_pack_02.txtproto delete mode 100644 test-cases/story-distribution-list.binproto delete mode 100644 test-cases/story-distribution-list.jsonproto delete mode 100644 test-cases/thread-merge-chat-update-message.binproto delete mode 100644 test-cases/thread-merge-chat-update-message.jsonproto delete mode 100644 test-cases/unregistered-contact.binproto delete mode 100644 test-cases/unregistered-contact.jsonproto diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..f5ab6cbf --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*.{kt,kts}] +indent_size = 2 +ij_kotlin_allow_trailing_comma_on_call_site = false +ij_kotlin_allow_trailing_comma = false +ktlint_code_style = intellij_idea +ktlint_standard_class-naming = disabled +ktlint_standard_no-wildcard-imports = disabled + +[**/generated/**/*] +ktlint = disabled \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6f30c673..8928bbad 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,25 +7,27 @@ on: - main jobs: - generate_and_compare: - name: Generate and compare .binprotos - + run: runs-on: ubuntu-latest - - timeout-minutes: 3 - steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + - uses: gradle/actions/setup-gradle@v4 - - run: sudo apt-get update && sudo apt-get install protobuf-compiler - - run: rustup toolchain install stable + - name: Generate tests + run: ./gradlew run - - name: Generate `.binproto`s for all `.jsonproto`s - run: ${PWD}/scripts/generate-binprotos.sh + - name: Ensure output matches committed tests + run: | + if [ -n "$(git status --porcelain)" ]; then + echo "Git status is not clean after running the Gradle script. Output does not match the committed tests!" + exit 1 + else + echo "Git status is clean. No changes detected." + fi - - name: Compare generated `.binproto`s - run: | - if [ -n "$(git status --porcelain)" ]; then - echo "Files changed after generating .binprotos!" - exit 1 - fi + - name: Check lint + run: ./gradlew ktlintCheck \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5500f781..f8a46828 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,12 @@ -.DS_Store +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ +.idea/ +!.idea/file.template.settings.xml +!.idea/fileTemplates/ +.gradle/ +build/ -target +### Mac OS ### +.DS_Store diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index 2d3245df..00000000 --- a/Cargo.lock +++ /dev/null @@ -1,824 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "anstream" -version = "0.6.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" - -[[package]] -name = "anstyle-parse" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" -dependencies = [ - "anstyle", - "windows-sys", -] - -[[package]] -name = "anyhow" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "assert_matches" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "bitflags" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "clap" -version = "4.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap-stdin" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2273396940ab439c58cd300e1e93a07768fce6e7a578f24089aab40b3a9d00" -dependencies = [ - "thiserror", -] - -[[package]] -name = "clap_builder" -version = "4.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "clap_lex" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" - -[[package]] -name = "colorchoice" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "displaydoc" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "either" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "json5" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1" -dependencies = [ - "pest", - "pest_derive", - "serde", -] - -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "libsignal-message-backup-io" -version = "0.1.0" -dependencies = [ - "arrayvec", - "assert_matches", - "clap", - "clap-stdin", - "displaydoc", - "futures", - "json5", - "protobuf", - "protobuf-codegen", - "protobuf-json-mapping", - "serde_json", - "thiserror", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "log" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" - -[[package]] -name = "memchr" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "pest" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pest_meta" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" -dependencies = [ - "once_cell", - "pest", - "sha2", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "proc-macro2" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "protobuf" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58678a64de2fced2bdec6bca052a6716a0efe692d6e3f53d1bda6a1def64cfc0" -dependencies = [ - "once_cell", - "protobuf-support", - "thiserror", -] - -[[package]] -name = "protobuf-codegen" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32777b0b3f6538d9d2e012b3fad85c7e4b9244b5958d04a6415f4333782b7a77" -dependencies = [ - "anyhow", - "once_cell", - "protobuf", - "protobuf-parse", - "regex", - "tempfile", - "thiserror", -] - -[[package]] -name = "protobuf-json-mapping" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d8440284a60d89deae81f67cc713f03f770ae51461e7613e44808910502693e" -dependencies = [ - "protobuf", - "protobuf-support", - "thiserror", -] - -[[package]] -name = "protobuf-parse" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cb37955261126624a25b5e6bda40ae34cf3989d52a783087ca6091b29b5642" -dependencies = [ - "anyhow", - "indexmap", - "log", - "protobuf", - "protobuf-support", - "tempfile", - "thiserror", - "which", -] - -[[package]] -name = "protobuf-support" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1ed294a835b0f30810e13616b1cd34943c6d1e84a8f3b0dcfe466d256c3e7e7" -dependencies = [ - "thiserror", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "regex" -version = "1.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" - -[[package]] -name = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "serde" -version = "1.0.202" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.202" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "syn" -version = "2.0.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys", -] - -[[package]] -name = "thiserror" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" diff --git a/Cargo.toml b/Cargo.toml deleted file mode 100644 index 909c3ae6..00000000 --- a/Cargo.toml +++ /dev/null @@ -1,5 +0,0 @@ -[workspace] - -resolver = "2" - -members = ["converter"] diff --git a/README.md b/README.md index d80af79b..2b4b2a20 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,22 @@ -# Signal Message Backup shared integration test cases +# Signal Message Backup Tests +The goal of this project is to provide a set of shared backup test files that clients can use to validate that they are +importing and exporting data correctly. They can do this by importing the test file, exporting a new one, and verifying +that the new file is functionally equivalent to the original (using the [libsignal](https://github.com/signalapp/libsignal) comparator). -At a high level, the goal of Backup integration tests is to validate that each client can import a given Backup instance into local state; export that local state into a new Backup instance; and confirm that the imported and exported Backups are equivalent. This requires a representation of Backup instances that is both human- and computer-readable and -writable, and a set of shared Backup instances that all clients are consuming in tests. +The tests themselves are generated through a Kotlin DSL that allows for the easy creation of permutations of a given +proto. This helps ensure that we have strong coverage over a wide range of possible backup files. -## Key Terms +# Using shared test cases +The test cases are located in [test-cases](test-cases). The actual backup file has a `.binproto` extension. Each of +these is paired with a `.txtproto` file that contains a human-readable version of the backup file to aid in debugging. -- “Backup binary” format: the `...` format used to serialize a Backup. -- `.binproto`: a file extension identifying a backup binary file that is neither gzipped nor encrypted. +The `.binproto`'s themselves are unencrypted and un-gzipped. This is to avoid any need for a shared key. -## Representing test-case Backup instances +# Creating test cases +If you import this project into IntelliJ, it comes with a template for creating a new test case. If you right-click +the `tests` package and click `New > Signal Backup Test Case`, you should have a basic template. Everything is generated +with a largely straightforward kotlin DSL. There's lots of existing test cases you can use as an example to see how +things are put together and how you can easily generate permutations of a given proto. -We will represent Backup test-case instances using JSON, relying on Proto3’s [JSON-mapping specification](https://protobuf.dev/programming-guides/proto3/#json) to convert types in `Backup.proto` to JSON objects. Specifically, a JSON representation of a Backup (a “`.jsonproto`” file) will contain a single top-level JSON array containing JSON representations of the ordered protos in a backup binary. - -This format will allow developers to manually write test cases representing specific scenarios as well as to inspect and perform manual validation on existing test cases during development. - -### Importing test cases in client tests - -While `.jsonproto` is human-interpretable, client test frameworks are expecting to import `.binproto` files. Fortunately, a `.jsonproto` is straightforwardly convertible to `.binproto` by reading the JSON array, mapping each contained object back to its Proto3 representation, and re-serializing those protos. - -To convert a `.jsonproto` test case into its corresponding `.binproto`, ensure you have Rust/`cargo` installed on your machine and run: - -```sh -; cargo run test-cases/{test-case-name}.jsonproto > test-cases/{test-case-name}.binproto -``` - -Alternatively, having added a `.jsonproto` file to `test-cases/`, run `./scripts/generate-binprotos.sh`. CI will do this on every push/pull-request, to validate that all committed `.binproto` files match their corresponding `.jsonproto`s. A generated `.binproto` should be committed to the repo for each added `.jsonproto`. +After creating the test file, add it to the `ALL_TEST_CASES` list in `Main.kt`, and run the project. If you're not using +Intellij, you can simply run `./gradlew run` from the terminal. \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 00000000..4d5d8bd0 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,24 @@ +plugins { + id("org.jetbrains.kotlin.jvm") version "1.9.10" + id("com.squareup.wire") version "4.4.3" + id("org.jlleitschuh.gradle.ktlint") version "12.1.1" + application +} + +repositories { + mavenCentral() + mavenLocal() +} + +wire { + kotlin {} +} + +application { + mainClass = "MainKt" +} + +dependencies { + implementation("org.signal:libsignal-client:0.56.0") + implementation(kotlin("reflect")) +} diff --git a/converter/Cargo.toml b/converter/Cargo.toml deleted file mode 100644 index 2fdafed8..00000000 --- a/converter/Cargo.toml +++ /dev/null @@ -1,35 +0,0 @@ -# -# Copyright (C) 2023 Signal Messenger, LLC. -# SPDX-License-Identifier: AGPL-3.0-only -# -[package] -name = "libsignal-message-backup-io" -version = "0.1.0" -edition = "2021" -authors = ["Signal Messenger LLC"] -license = "AGPL-3.0-only" - -default-run = "json_to_binproto" - -[[bin]] -name = "json_to_binproto" - -[[bin]] -name = "binproto_to_json" - -[dependencies] -arrayvec = "0.7.4" -assert_matches = "1.5.0" -clap = { version = "4.2.1", features = ["derive"] } -clap-stdin = "0.3.0" -displaydoc = "0.2.4" -futures = "0.3.29" -json5 = "0.4.1" -protobuf = "3.3.0" -protobuf-json-mapping = "3.3.0" -serde_json = "1.0" -thiserror = "1.0.50" - -[build-dependencies] -protobuf = "3.3.0" -protobuf-codegen = "3.3.0" diff --git a/converter/build.rs b/converter/build.rs deleted file mode 100644 index 87ca75c5..00000000 --- a/converter/build.rs +++ /dev/null @@ -1,34 +0,0 @@ -// -// Copyright 2022 Signal Messenger, LLC. -// SPDX-License-Identifier: AGPL-3.0-only -// - -fn main() { - const PROTOS_DIR: &str = "protos"; - - let out_dir = format!( - "{}/{PROTOS_DIR}", - std::env::var("OUT_DIR").expect("OUT_DIR env var not set") - ); - std::fs::create_dir_all(&out_dir).expect("failed to create output directory"); - - const PROTOS: &[&str] = &["src/proto/backup.proto"]; - let mut codegen = protobuf_codegen::Codegen::new(); - - codegen - .protoc() - .protoc_extra_arg( - // Enable optional fields. This isn't needed in the most recent - // protobuf compiler version, but adding it lets us support older - // versions that might be installed in CI or on developer machines. - "--experimental_allow_proto3_optional", - ) - .include("src") - .out_dir(&out_dir) - .inputs(PROTOS) - .run_from_script(); - - for proto in PROTOS { - println!("cargo:rerun-if-changed={}", proto); - } -} diff --git a/converter/src/bin/binproto_to_json.rs b/converter/src/bin/binproto_to_json.rs deleted file mode 100644 index 4b552427..00000000 --- a/converter/src/bin/binproto_to_json.rs +++ /dev/null @@ -1,28 +0,0 @@ -// -// Copyright (C) 2024 Signal Messenger, LLC. -// SPDX-License-Identifier: AGPL-3.0-only -// - -use clap::Parser; -use clap_stdin::FileOrStdin; -use futures::io::AllowStdIo; - -#[derive(Parser)] -/// Compresses and encrypts an unencrypted backup file. -struct CliArgs { - /// the file to read from, or '-' to read from stdin - filename: FileOrStdin, -} - -fn main() { - let CliArgs { filename } = CliArgs::parse(); - - eprintln!("reading from {:?}", filename.source); - - let json_array = futures::executor::block_on(libsignal_message_backup_io::convert_to_json( - AllowStdIo::new(filename.into_reader().expect("failed to open")), - )) - .expect("failed to convert"); - - print!("{:#}", serde_json::Value::Array(json_array)); -} diff --git a/converter/src/bin/json_to_binproto.rs b/converter/src/bin/json_to_binproto.rs deleted file mode 100644 index 7ffcd078..00000000 --- a/converter/src/bin/json_to_binproto.rs +++ /dev/null @@ -1,46 +0,0 @@ -// -// Copyright (C) 2024 Signal Messenger, LLC. -// SPDX-License-Identifier: AGPL-3.0-only -// - -use std::io::{Read as _, Write as _}; - -use assert_matches::assert_matches; -use clap::Parser; -use clap_stdin::FileOrStdin; - -#[derive(Parser)] -/// Compresses and encrypts an unencrypted backup file. -struct CliArgs { - /// the file to read from, or '-' to read from stdin - filename: FileOrStdin, -} - -fn main() { - let CliArgs { filename } = CliArgs::parse(); - - eprintln!("reading from {:?}", filename.source); - - let contents = - json5::from_str(&String::from_utf8(read_file(filename)).expect("not a string")) - .expect("invalid JSON"); - - let contents = assert_matches!(contents, serde_json::Value::Array(contents) => contents); - let serialized = - libsignal_message_backup_io::convert_from_json(contents).expect("failed to convert"); - - std::io::stdout() - .write_all(&serialized) - .expect("failed to write"); -} - -fn read_file(filename: FileOrStdin) -> Vec { - let source = filename.source.clone(); - let mut contents = Vec::new(); - filename - .into_reader() - .unwrap_or_else(|e| panic!("failed to read {source:?}: {e}")) - .read_to_end(&mut contents) - .expect("IO error"); - contents -} diff --git a/converter/src/lib.rs b/converter/src/lib.rs deleted file mode 100644 index b788a8c2..00000000 --- a/converter/src/lib.rs +++ /dev/null @@ -1,82 +0,0 @@ -// -// Copyright (C) 2024 Signal Messenger, LLC. -// SPDX-License-Identifier: AGPL-3.0-only -// - -//! Signal remote message backup conversion utilities. - -mod parse; -mod proto; - -#[derive(Debug, thiserror::Error, displaydoc::Display)] -pub enum ConvertJsonError { - /// input array was empty - EmptyArray, - /// failed to parse JSON as proto: {0} - ProtoJsonParse(#[from] protobuf_json_mapping::ParseError), - /// failed to print proto as JSON: {0} - ProtoJsonPrint(#[from] protobuf_json_mapping::PrintError), - /// JSON error: {0} - Json(#[from] serde_json::Error), - /// failed to encode/decode binary protobuf: {0} - ProtoEncode(#[from] protobuf::Error), - /// input/output error: {0} - Io(#[from] std::io::Error), -} - -impl From for ConvertJsonError { - fn from(value: crate::parse::ParseError) -> Self { - match value { - crate::parse::ParseError::Decode(e) => e.into(), - crate::parse::ParseError::Io(e) => e.into(), - } - } -} - -pub fn convert_from_json(json: Vec) -> Result, ConvertJsonError> { - let mut it = json.into_iter(); - - let backup_info = protobuf_json_mapping::parse_from_str::( - &it.next().ok_or(ConvertJsonError::EmptyArray)?.to_string(), - )?; - - let mut serialized = Vec::new(); - protobuf::Message::write_length_delimited_to_vec(&backup_info, &mut serialized)?; - - for json_frame in it { - let frame = - protobuf_json_mapping::parse_from_str::(&json_frame.to_string())?; - - protobuf::Message::write_length_delimited_to_vec(&frame, &mut serialized)?; - } - - Ok(serialized.into_boxed_slice()) -} - -pub async fn convert_to_json( - length_delimited_binproto: impl futures::AsyncRead + Unpin, -) -> Result, ConvertJsonError> { - fn binary_proto_to_json( - binary: &[u8], - ) -> Result { - let proto = M::parse_from_bytes(binary)?; - let json_proto = protobuf_json_mapping::print_to_string(&proto)?; - Ok(serde_json::from_str(&json_proto)?) - } - - let mut reader = crate::parse::VarintDelimitedReader::new(length_delimited_binproto); - - let mut array = Vec::new(); - let backup_info = reader - .read_next() - .await? - .ok_or(ConvertJsonError::EmptyArray)?; - array.push(binary_proto_to_json::( - &backup_info, - )?); - - while let Some(frame) = reader.read_next().await? { - array.push(binary_proto_to_json::(&frame)?); - } - Ok(array) -} diff --git a/converter/src/parse.rs b/converter/src/parse.rs deleted file mode 100644 index 4e55e100..00000000 --- a/converter/src/parse.rs +++ /dev/null @@ -1,220 +0,0 @@ -// -// Copyright (C) 2023 Signal Messenger, LLC. -// SPDX-License-Identifier: AGPL-3.0-only -// - -use std::fmt::Debug; - -use arrayvec::ArrayVec; -use futures::io::{AsyncRead, AsyncReadExt as _}; - -#[derive(Debug, displaydoc::Display, thiserror::Error)] -pub enum ParseError { - /// io: {0} - Io(#[from] std::io::Error), - /// proto decode error: {0} - Decode(#[from] protobuf::Error), -} - -const VARINT_MAX_LENGTH: usize = 10; - -pub struct VarintDelimitedReader { - reader: R, - buffer: ArrayVec, -} - -impl VarintDelimitedReader { - pub fn new(reader: R) -> Self { - Self { - reader, - buffer: ArrayVec::new(), - } - } - - pub async fn read_next(&mut self) -> Result>, ParseError> { - let length = match self.read_next_varint().await? { - None => return Ok(None), - Some(length) => length, - }; - - let Self { reader, buffer } = self; - - // Read `length` bytes, first from the buffer, then from the reader. - let mut buf = Vec::with_capacity(length); - let buffered_byte_count = length.min(buffer.len()); - buf.extend_from_slice(&buffer[..buffered_byte_count]); - buffer.drain(..buffered_byte_count); - - if buffered_byte_count < length { - buf.resize(length, 0); - - reader.read_exact(&mut buf[buffered_byte_count..]).await?; - } - - Ok(Some(buf.into_boxed_slice())) - } - - async fn read_next_varint(&mut self) -> Result, ParseError> { - let Self { buffer, reader } = self; - - // First fill up the buffer with zeros so it can be treated as a slice. - // Keep track of how many bytes in the buffer have actually been read - // from the reader. - let mut read_bytes = buffer.len(); - buffer.extend( - [0; VARINT_MAX_LENGTH][..buffer.remaining_capacity()] - .iter() - .cloned(), - ); - - // Read into the invalid portion until it's full or the reader is empty. - loop { - let n = reader.read(&mut buffer[read_bytes..]).await?; - if n == 0 { - break; - } - read_bytes += n; - } - - // Chop off any zeroed-but-not-read bytes. - buffer.truncate(read_bytes); - - if read_bytes == 0 { - return Ok(None); - } - - let mut proto_reader = protobuf::CodedInputStream::from_bytes(buffer); - - let length = proto_reader - .read_raw_varint32() - .map_err(|_: protobuf::Error| { - std::io::Error::from(std::io::ErrorKind::UnexpectedEof) - })?; - - // Remove the consumed bytes from the buffer. - let consumed_byte_count: usize = - proto_reader.pos().try_into().expect("< VARINT_MAX_LENGTH"); - drop(proto_reader); - - buffer.drain(..consumed_byte_count); - - Ok(Some(length.try_into().expect("u32::MAX < usize::MAX"))) - } -} - -#[cfg(test)] -mod test { - use assert_matches::assert_matches; - use futures::executor::block_on; - use futures::io::Cursor; - use futures::pin_mut; - - use super::*; - - #[test] - fn read_length_delimited_empty() { - let bytes = []; - let reader = VarintDelimitedReader::new(bytes.as_slice()); - pin_mut!(reader); - - assert_matches!(block_on(reader.read_next()), Ok(None)); - } - - #[test] - fn read_length_delimited_truncated() { - const MESSAGE_SIZE: usize = 10; - const VARINT_LEN: usize = 1; - - let mut short_buf = [0; VARINT_LEN + MESSAGE_SIZE - 1]; - { - let mut writer = protobuf::CodedOutputStream::bytes(&mut short_buf); - writer - .write_raw_varint32(MESSAGE_SIZE.try_into().unwrap()) - .expect("can hold varint"); - writer.flush().expect("can write"); - assert_eq!( - writer.total_bytes_written(), - u64::try_from(VARINT_LEN).unwrap() - ); - } - - let reader = VarintDelimitedReader::new(short_buf.as_slice()); - pin_mut!(reader); - - assert_matches!( - block_on(reader.read_next()), - Err(ParseError::Io(e)) if e.kind() == std::io::ErrorKind::UnexpectedEof - ); - } - struct MessageAndLen { - varint: [u8; L], - message: [u8; M], - } - - impl MessageAndLen { - const fn new(varint: [u8; L], message: [u8; M]) -> Self { - Self { varint, message } - } - - fn into_reader(self) -> impl AsyncRead { - Cursor::new(self.varint).chain(Cursor::new(self.message)) - } - } - - #[track_caller] - fn assert_valid( - MessageAndLen { varint, message }: &MessageAndLen, - ) { - let mut buf = [0u8; L]; - let mut writer = protobuf::CodedOutputStream::bytes(&mut buf); - writer - .write_raw_varint32(message.len().try_into().unwrap()) - .expect("correct length"); - writer.flush().expect("can write"); - let written_bytes = writer.total_bytes_written().try_into().unwrap(); - drop(writer); - - let buf = &buf[..written_bytes]; - assert_eq!(buf, varint); - } - - #[test] - fn read_length_delimited_multiple_messages() { - const FIRST: MessageAndLen<1, 5> = MessageAndLen::new([5], *b"12345"); - const SECOND: MessageAndLen<1, 7> = MessageAndLen::new([7], *b"abcdefg"); - const THIRD: MessageAndLen<2, 256> = MessageAndLen::new([0x80, 0x02], [0xab; 256]); - - // Assert that our constants are correct before using them as input to - // the actual test. - assert_valid(&FIRST); - assert_valid(&SECOND); - assert_valid(&THIRD); - - let concatenated_reader = FIRST - .into_reader() - .chain(SECOND.into_reader().chain(THIRD.into_reader())); - let reader = VarintDelimitedReader::new(concatenated_reader); - pin_mut!(reader); - - // Read two messages. - assert_eq!( - *block_on(reader.read_next()) - .expect("can read") - .expect("has frame"), - FIRST.message - ); - assert_eq!( - *block_on(reader.read_next()) - .expect("can read") - .expect("has frame"), - SECOND.message - ); - assert_eq!( - *block_on(reader.read_next()) - .expect("can read") - .expect("has frame"), - THIRD.message - ); - assert_matches!(block_on(reader.read_next()), Ok(None)); - } -} diff --git a/converter/src/proto.rs b/converter/src/proto.rs deleted file mode 100644 index c8a90430..00000000 --- a/converter/src/proto.rs +++ /dev/null @@ -1,6 +0,0 @@ -// -// Copyright 2023 Signal Messenger, LLC. -// SPDX-License-Identifier: AGPL-3.0-only -// - -include!(concat!(env!("OUT_DIR"), "/protos/mod.rs")); \ No newline at end of file diff --git a/converter/src/proto/backup.proto b/converter/src/proto/backup.proto deleted file mode 120000 index 6b7a5317..00000000 --- a/converter/src/proto/backup.proto +++ /dev/null @@ -1 +0,0 @@ -../../../Backup.proto \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..d64cd4917707c1f8861d8cb53dd15194d4248596 GIT binary patch literal 43462 zcma&NWl&^owk(X(xVyW%ySuwf;qI=D6|RlDJ2cR^yEKh!@I- zp9QeisK*rlxC>+~7Dk4IxIRsKBHqdR9b3+fyL=ynHmIDe&|>O*VlvO+%z5;9Z$|DJ zb4dO}-R=MKr^6EKJiOrJdLnCJn>np?~vU-1sSFgPu;pthGwf}bG z(1db%xwr#x)r+`4AGu$j7~u2MpVs3VpLp|mx&;>`0p0vH6kF+D2CY0fVdQOZ@h;A` z{infNyvmFUiu*XG}RNMNwXrbec_*a3N=2zJ|Wh5z* z5rAX$JJR{#zP>KY**>xHTuw?|-Rg|o24V)74HcfVT;WtQHXlE+_4iPE8QE#DUm%x0 zEKr75ur~W%w#-My3Tj`hH6EuEW+8K-^5P62$7Sc5OK+22qj&Pd1;)1#4tKihi=~8C zHiQSst0cpri6%OeaR`PY>HH_;CPaRNty%WTm4{wDK8V6gCZlG@U3$~JQZ;HPvDJcT1V{ z?>H@13MJcCNe#5z+MecYNi@VT5|&UiN1D4ATT+%M+h4c$t;C#UAs3O_q=GxK0}8%8 z8J(_M9bayxN}69ex4dzM_P3oh@ZGREjVvn%%r7=xjkqxJP4kj}5tlf;QosR=%4L5y zWhgejO=vao5oX%mOHbhJ8V+SG&K5dABn6!WiKl{|oPkq(9z8l&Mm%(=qGcFzI=eLu zWc_oCLyf;hVlB@dnwY98?75B20=n$>u3b|NB28H0u-6Rpl((%KWEBOfElVWJx+5yg z#SGqwza7f}$z;n~g%4HDU{;V{gXIhft*q2=4zSezGK~nBgu9-Q*rZ#2f=Q}i2|qOp z!!y4p)4o=LVUNhlkp#JL{tfkhXNbB=Ox>M=n6soptJw-IDI|_$is2w}(XY>a=H52d z3zE$tjPUhWWS+5h=KVH&uqQS=$v3nRs&p$%11b%5qtF}S2#Pc`IiyBIF4%A!;AVoI zXU8-Rpv!DQNcF~(qQnyyMy=-AN~U>#&X1j5BLDP{?K!%h!;hfJI>$mdLSvktEr*89 zdJHvby^$xEX0^l9g$xW-d?J;L0#(`UT~zpL&*cEh$L|HPAu=P8`OQZV!-}l`noSp_ zQ-1$q$R-gDL)?6YaM!=8H=QGW$NT2SeZlb8PKJdc=F-cT@j7Xags+Pr*jPtlHFnf- zh?q<6;)27IdPc^Wdy-mX%2s84C1xZq9Xms+==F4);O`VUASmu3(RlgE#0+#giLh-& zcxm3_e}n4{%|X zJp{G_j+%`j_q5}k{eW&TlP}J2wtZ2^<^E(O)4OQX8FDp6RJq!F{(6eHWSD3=f~(h} zJXCf7=r<16X{pHkm%yzYI_=VDP&9bmI1*)YXZeB}F? z(%QsB5fo*FUZxK$oX~X^69;x~j7ms8xlzpt-T15e9}$4T-pC z6PFg@;B-j|Ywajpe4~bk#S6(fO^|mm1hKOPfA%8-_iGCfICE|=P_~e;Wz6my&)h_~ zkv&_xSAw7AZ%ThYF(4jADW4vg=oEdJGVOs>FqamoL3Np8>?!W#!R-0%2Bg4h?kz5I zKV-rKN2n(vUL%D<4oj@|`eJ>0i#TmYBtYmfla;c!ATW%;xGQ0*TW@PTlGG><@dxUI zg>+3SiGdZ%?5N=8uoLA|$4isK$aJ%i{hECP$bK{J#0W2gQ3YEa zZQ50Stn6hqdfxJ*9#NuSLwKFCUGk@c=(igyVL;;2^wi4o30YXSIb2g_ud$ zgpCr@H0qWtk2hK8Q|&wx)}4+hTYlf;$a4#oUM=V@Cw#!$(nOFFpZ;0lc!qd=c$S}Z zGGI-0jg~S~cgVT=4Vo)b)|4phjStD49*EqC)IPwyeKBLcN;Wu@Aeph;emROAwJ-0< z_#>wVm$)ygH|qyxZaet&(Vf%pVdnvKWJn9`%DAxj3ot;v>S$I}jJ$FLBF*~iZ!ZXE zkvui&p}fI0Y=IDX)mm0@tAd|fEHl~J&K}ZX(Mm3cm1UAuwJ42+AO5@HwYfDH7ipIc zmI;1J;J@+aCNG1M`Btf>YT>~c&3j~Qi@Py5JT6;zjx$cvOQW@3oQ>|}GH?TW-E z1R;q^QFjm5W~7f}c3Ww|awg1BAJ^slEV~Pk`Kd`PS$7;SqJZNj->it4DW2l15}xP6 zoCl$kyEF%yJni0(L!Z&14m!1urXh6Btj_5JYt1{#+H8w?5QI%% zo-$KYWNMJVH?Hh@1n7OSu~QhSswL8x0=$<8QG_zepi_`y_79=nK=_ZP_`Em2UI*tyQoB+r{1QYZCpb?2OrgUw#oRH$?^Tj!Req>XiE#~B|~ z+%HB;=ic+R@px4Ld8mwpY;W^A%8%l8$@B@1m5n`TlKI6bz2mp*^^^1mK$COW$HOfp zUGTz-cN9?BGEp}5A!mDFjaiWa2_J2Iq8qj0mXzk; z66JBKRP{p%wN7XobR0YjhAuW9T1Gw3FDvR5dWJ8ElNYF94eF3ebu+QwKjtvVu4L zI9ip#mQ@4uqVdkl-TUQMb^XBJVLW(-$s;Nq;@5gr4`UfLgF$adIhd?rHOa%D);whv z=;krPp~@I+-Z|r#s3yCH+c1US?dnm+C*)r{m+86sTJusLdNu^sqLrfWed^ndHXH`m zd3#cOe3>w-ga(Dus_^ppG9AC>Iq{y%%CK+Cro_sqLCs{VLuK=dev>OL1dis4(PQ5R zcz)>DjEkfV+MO;~>VUlYF00SgfUo~@(&9$Iy2|G0T9BSP?&T22>K46D zL*~j#yJ?)^*%J3!16f)@Y2Z^kS*BzwfAQ7K96rFRIh>#$*$_Io;z>ux@}G98!fWR@ zGTFxv4r~v)Gsd|pF91*-eaZ3Qw1MH$K^7JhWIdX%o$2kCbvGDXy)a?@8T&1dY4`;L z4Kn+f%SSFWE_rpEpL9bnlmYq`D!6F%di<&Hh=+!VI~j)2mfil03T#jJ_s?}VV0_hp z7T9bWxc>Jm2Z0WMU?`Z$xE74Gu~%s{mW!d4uvKCx@WD+gPUQ zV0vQS(Ig++z=EHN)BR44*EDSWIyT~R4$FcF*VEY*8@l=218Q05D2$|fXKFhRgBIEE zdDFB}1dKkoO^7}{5crKX!p?dZWNz$m>1icsXG2N+((x0OIST9Zo^DW_tytvlwXGpn zs8?pJXjEG;T@qrZi%#h93?FP$!&P4JA(&H61tqQi=opRzNpm zkrG}$^t9&XduK*Qa1?355wd8G2CI6QEh@Ua>AsD;7oRUNLPb76m4HG3K?)wF~IyS3`fXuNM>${?wmB zpVz;?6_(Fiadfd{vUCBM*_kt$+F3J+IojI;9L(gc9n3{sEZyzR9o!_mOwFC#tQ{Q~ zP3-`#uK#tP3Q7~Q;4H|wjZHO8h7e4IuBxl&vz2w~D8)w=Wtg31zpZhz%+kzSzL*dV zwp@{WU4i;hJ7c2f1O;7Mz6qRKeASoIv0_bV=i@NMG*l<#+;INk-^`5w@}Dj~;k=|}qM1vq_P z|GpBGe_IKq|LNy9SJhKOQ$c=5L{Dv|Q_lZl=-ky*BFBJLW9&y_C|!vyM~rQx=!vun z?rZJQB5t}Dctmui5i31C_;_}CEn}_W%>oSXtt>@kE1=JW*4*v4tPp;O6 zmAk{)m!)}34pTWg8{i>($%NQ(Tl;QC@J@FfBoc%Gr&m560^kgSfodAFrIjF}aIw)X zoXZ`@IsMkc8_=w%-7`D6Y4e*CG8k%Ud=GXhsTR50jUnm+R*0A(O3UKFg0`K;qp1bl z7``HN=?39ic_kR|^R^~w-*pa?Vj#7|e9F1iRx{GN2?wK!xR1GW!qa=~pjJb-#u1K8 zeR?Y2i-pt}yJq;SCiVHODIvQJX|ZJaT8nO+(?HXbLefulKKgM^B(UIO1r+S=7;kLJ zcH}1J=Px2jsh3Tec&v8Jcbng8;V-`#*UHt?hB(pmOipKwf3Lz8rG$heEB30Sg*2rx zV<|KN86$soN(I!BwO`1n^^uF2*x&vJ$2d$>+`(romzHP|)K_KkO6Hc>_dwMW-M(#S zK(~SiXT1@fvc#U+?|?PniDRm01)f^#55;nhM|wi?oG>yBsa?~?^xTU|fX-R(sTA+5 zaq}-8Tx7zrOy#3*JLIIVsBmHYLdD}!0NP!+ITW+Thn0)8SS!$@)HXwB3tY!fMxc#1 zMp3H?q3eD?u&Njx4;KQ5G>32+GRp1Ee5qMO0lZjaRRu&{W<&~DoJNGkcYF<5(Ab+J zgO>VhBl{okDPn78<%&e2mR{jwVCz5Og;*Z;;3%VvoGo_;HaGLWYF7q#jDX=Z#Ml`H z858YVV$%J|e<1n`%6Vsvq7GmnAV0wW4$5qQ3uR@1i>tW{xrl|ExywIc?fNgYlA?C5 zh$ezAFb5{rQu6i7BSS5*J-|9DQ{6^BVQ{b*lq`xS@RyrsJN?-t=MTMPY;WYeKBCNg z^2|pN!Q^WPJuuO4!|P@jzt&tY1Y8d%FNK5xK(!@`jO2aEA*4 zkO6b|UVBipci?){-Ke=+1;mGlND8)6+P;8sq}UXw2hn;fc7nM>g}GSMWu&v&fqh

iViYT=fZ(|3Ox^$aWPp4a8h24tD<|8-!aK0lHgL$N7Efw}J zVIB!7=T$U`ao1?upi5V4Et*-lTG0XvExbf!ya{cua==$WJyVG(CmA6Of*8E@DSE%L z`V^$qz&RU$7G5mg;8;=#`@rRG`-uS18$0WPN@!v2d{H2sOqP|!(cQ@ zUHo!d>>yFArLPf1q`uBvY32miqShLT1B@gDL4XoVTK&@owOoD)OIHXrYK-a1d$B{v zF^}8D3Y^g%^cnvScOSJR5QNH+BI%d|;J;wWM3~l>${fb8DNPg)wrf|GBP8p%LNGN# z3EaIiItgwtGgT&iYCFy9-LG}bMI|4LdmmJt@V@% zb6B)1kc=T)(|L@0;wr<>=?r04N;E&ef+7C^`wPWtyQe(*pD1pI_&XHy|0gIGHMekd zF_*M4yi6J&Z4LQj65)S zXwdM{SwUo%3SbPwFsHgqF@V|6afT|R6?&S;lw=8% z3}@9B=#JI3@B*#4s!O))~z zc>2_4Q_#&+5V`GFd?88^;c1i7;Vv_I*qt!_Yx*n=;rj!82rrR2rQ8u5(Ejlo{15P% zs~!{%XJ>FmJ})H^I9bn^Re&38H{xA!0l3^89k(oU;bZWXM@kn$#aoS&Y4l^-WEn-fH39Jb9lA%s*WsKJQl?n9B7_~P z-XM&WL7Z!PcoF6_D>V@$CvUIEy=+Z&0kt{szMk=f1|M+r*a43^$$B^MidrT0J;RI` z(?f!O<8UZkm$_Ny$Hth1J#^4ni+im8M9mr&k|3cIgwvjAgjH z8`N&h25xV#v*d$qBX5jkI|xOhQn!>IYZK7l5#^P4M&twe9&Ey@@GxYMxBZq2e7?`q z$~Szs0!g{2fGcp9PZEt|rdQ6bhAgpcLHPz?f-vB?$dc*!9OL?Q8mn7->bFD2Si60* z!O%y)fCdMSV|lkF9w%x~J*A&srMyYY3{=&$}H zGQ4VG_?$2X(0|vT0{=;W$~icCI{b6W{B!Q8xdGhF|D{25G_5_+%s(46lhvNLkik~R z>nr(&C#5wwOzJZQo9m|U<;&Wk!_#q|V>fsmj1g<6%hB{jGoNUPjgJslld>xmODzGjYc?7JSuA?A_QzjDw5AsRgi@Y|Z0{F{!1=!NES-#*f^s4l0Hu zz468))2IY5dmD9pa*(yT5{EyP^G>@ZWumealS-*WeRcZ}B%gxq{MiJ|RyX-^C1V=0 z@iKdrGi1jTe8Ya^x7yyH$kBNvM4R~`fbPq$BzHum-3Zo8C6=KW@||>zsA8-Y9uV5V z#oq-f5L5}V<&wF4@X@<3^C%ptp6+Ce)~hGl`kwj)bsAjmo_GU^r940Z-|`<)oGnh7 zFF0Tde3>ui?8Yj{sF-Z@)yQd~CGZ*w-6p2U<8}JO-sRsVI5dBji`01W8A&3$?}lxBaC&vn0E$c5tW* zX>5(zzZ=qn&!J~KdsPl;P@bmA-Pr8T*)eh_+Dv5=Ma|XSle6t(k8qcgNyar{*ReQ8 zTXwi=8vr>!3Ywr+BhggHDw8ke==NTQVMCK`$69fhzEFB*4+H9LIvdt-#IbhZvpS}} zO3lz;P?zr0*0$%-Rq_y^k(?I{Mk}h@w}cZpMUp|ucs55bcloL2)($u%mXQw({Wzc~ z;6nu5MkjP)0C(@%6Q_I_vsWrfhl7Zpoxw#WoE~r&GOSCz;_ro6i(^hM>I$8y>`!wW z*U^@?B!MMmb89I}2(hcE4zN2G^kwyWCZp5JG>$Ez7zP~D=J^LMjSM)27_0B_X^C(M z`fFT+%DcKlu?^)FCK>QzSnV%IsXVcUFhFdBP!6~se&xxrIxsvySAWu++IrH;FbcY$ z2DWTvSBRfLwdhr0nMx+URA$j3i7_*6BWv#DXfym?ZRDcX9C?cY9sD3q)uBDR3uWg= z(lUIzB)G$Hr!){>E{s4Dew+tb9kvToZp-1&c?y2wn@Z~(VBhqz`cB;{E4(P3N2*nJ z_>~g@;UF2iG{Kt(<1PyePTKahF8<)pozZ*xH~U-kfoAayCwJViIrnqwqO}7{0pHw$ zs2Kx?s#vQr7XZ264>5RNKSL8|Ty^=PsIx^}QqOOcfpGUU4tRkUc|kc7-!Ae6!+B{o~7nFpm3|G5^=0#Bnm6`V}oSQlrX(u%OWnC zoLPy&Q;1Jui&7ST0~#+}I^&?vcE*t47~Xq#YwvA^6^} z`WkC)$AkNub|t@S!$8CBlwbV~?yp&@9h{D|3z-vJXgzRC5^nYm+PyPcgRzAnEi6Q^gslXYRv4nycsy-SJu?lMps-? zV`U*#WnFsdPLL)Q$AmD|0`UaC4ND07+&UmOu!eHruzV|OUox<+Jl|Mr@6~C`T@P%s zW7sgXLF2SSe9Fl^O(I*{9wsFSYb2l%-;&Pi^dpv!{)C3d0AlNY6!4fgmSgj_wQ*7Am7&$z;Jg&wgR-Ih;lUvWS|KTSg!&s_E9_bXBkZvGiC6bFKDWZxsD$*NZ#_8bl zG1P-#@?OQzED7@jlMJTH@V!6k;W>auvft)}g zhoV{7$q=*;=l{O>Q4a@ ziMjf_u*o^PsO)#BjC%0^h>Xp@;5$p{JSYDt)zbb}s{Kbt!T*I@Pk@X0zds6wsefuU zW$XY%yyRGC94=6mf?x+bbA5CDQ2AgW1T-jVAJbm7K(gp+;v6E0WI#kuACgV$r}6L? zd|Tj?^%^*N&b>Dd{Wr$FS2qI#Ucs1yd4N+RBUQiSZGujH`#I)mG&VKoDh=KKFl4=G z&MagXl6*<)$6P}*Tiebpz5L=oMaPrN+caUXRJ`D?=K9!e0f{@D&cZLKN?iNP@X0aF zE(^pl+;*T5qt?1jRC=5PMgV!XNITRLS_=9{CJExaQj;lt!&pdzpK?8p>%Mb+D z?yO*uSung=-`QQ@yX@Hyd4@CI^r{2oiu`%^bNkz+Nkk!IunjwNC|WcqvX~k=><-I3 zDQdbdb|!v+Iz01$w@aMl!R)koD77Xp;eZwzSl-AT zr@Vu{=xvgfq9akRrrM)}=!=xcs+U1JO}{t(avgz`6RqiiX<|hGG1pmop8k6Q+G_mv zJv|RfDheUp2L3=^C=4aCBMBn0aRCU(DQwX-W(RkRwmLeuJYF<0urcaf(=7)JPg<3P zQs!~G)9CT18o!J4{zX{_e}4eS)U-E)0FAt}wEI(c0%HkxgggW;(1E=>J17_hsH^sP z%lT0LGgbUXHx-K*CI-MCrP66UP0PvGqM$MkeLyqHdbgP|_Cm!7te~b8p+e6sQ_3k| zVcwTh6d83ltdnR>D^)BYQpDKlLk3g0Hdcgz2}%qUs9~~Rie)A-BV1mS&naYai#xcZ z(d{8=-LVpTp}2*y)|gR~;qc7fp26}lPcLZ#=JpYcn3AT9(UIdOyg+d(P5T7D&*P}# zQCYplZO5|7+r19%9e`v^vfSS1sbX1c%=w1;oyruXB%Kl$ACgKQ6=qNWLsc=28xJjg zwvsI5-%SGU|3p>&zXVl^vVtQT3o-#$UT9LI@Npz~6=4!>mc431VRNN8od&Ul^+G_kHC`G=6WVWM z%9eWNyy(FTO|A+@x}Ou3CH)oi;t#7rAxdIXfNFwOj_@Y&TGz6P_sqiB`Q6Lxy|Q{`|fgmRG(k+!#b*M+Z9zFce)f-7;?Km5O=LHV9f9_87; zF7%R2B+$?@sH&&-$@tzaPYkw0;=i|;vWdI|Wl3q_Zu>l;XdIw2FjV=;Mq5t1Q0|f< zs08j54Bp`3RzqE=2enlkZxmX6OF+@|2<)A^RNQpBd6o@OXl+i)zO%D4iGiQNuXd+zIR{_lb96{lc~bxsBveIw6umhShTX+3@ZJ=YHh@ zWY3(d0azg;7oHn>H<>?4@*RQbi>SmM=JrHvIG(~BrvI)#W(EAeO6fS+}mxxcc+X~W6&YVl86W9WFSS}Vz-f9vS?XUDBk)3TcF z8V?$4Q)`uKFq>xT=)Y9mMFVTUk*NIA!0$?RP6Ig0TBmUFrq*Q-Agq~DzxjStQyJ({ zBeZ;o5qUUKg=4Hypm|}>>L=XKsZ!F$yNTDO)jt4H0gdQ5$f|d&bnVCMMXhNh)~mN z@_UV6D7MVlsWz+zM+inZZp&P4fj=tm6fX)SG5H>OsQf_I8c~uGCig$GzuwViK54bcgL;VN|FnyQl>Ed7(@>=8$a_UKIz|V6CeVSd2(P z0Uu>A8A+muM%HLFJQ9UZ5c)BSAv_zH#1f02x?h9C}@pN@6{>UiAp>({Fn(T9Q8B z^`zB;kJ5b`>%dLm+Ol}ty!3;8f1XDSVX0AUe5P#@I+FQ-`$(a;zNgz)4x5hz$Hfbg z!Q(z26wHLXko(1`;(BAOg_wShpX0ixfWq3ponndY+u%1gyX)_h=v1zR#V}#q{au6; z!3K=7fQwnRfg6FXtNQmP>`<;!N137paFS%y?;lb1@BEdbvQHYC{976l`cLqn;b8lp zIDY>~m{gDj(wfnK!lpW6pli)HyLEiUrNc%eXTil|F2s(AY+LW5hkKb>TQ3|Q4S9rr zpDs4uK_co6XPsn_z$LeS{K4jFF`2>U`tbgKdyDne`xmR<@6AA+_hPNKCOR-Zqv;xk zu5!HsBUb^!4uJ7v0RuH-7?l?}b=w5lzzXJ~gZcxRKOovSk@|#V+MuX%Y+=;14i*%{)_gSW9(#4%)AV#3__kac1|qUy!uyP{>?U#5wYNq}y$S9pCc zFc~4mgSC*G~j0u#qqp9 z${>3HV~@->GqEhr_Xwoxq?Hjn#=s2;i~g^&Hn|aDKpA>Oc%HlW(KA1?BXqpxB;Ydx)w;2z^MpjJ(Qi(X!$5RC z*P{~%JGDQqojV>2JbEeCE*OEu!$XJ>bWA9Oa_Hd;y)F%MhBRi*LPcdqR8X`NQ&1L# z5#9L*@qxrx8n}LfeB^J{%-?SU{FCwiWyHp682F+|pa+CQa3ZLzBqN1{)h4d6+vBbV zC#NEbQLC;}me3eeYnOG*nXOJZEU$xLZ1<1Y=7r0(-U0P6-AqwMAM`a(Ed#7vJkn6plb4eI4?2y3yOTGmmDQ!z9`wzbf z_OY#0@5=bnep;MV0X_;;SJJWEf^E6Bd^tVJ9znWx&Ks8t*B>AM@?;D4oWUGc z!H*`6d7Cxo6VuyS4Eye&L1ZRhrRmN6Lr`{NL(wDbif|y&z)JN>Fl5#Wi&mMIr5i;x zBx}3YfF>>8EC(fYnmpu~)CYHuHCyr5*`ECap%t@y=jD>!_%3iiE|LN$mK9>- zHdtpy8fGZtkZF?%TW~29JIAfi2jZT8>OA7=h;8T{{k?c2`nCEx9$r zS+*&vt~2o^^J+}RDG@+9&M^K*z4p{5#IEVbz`1%`m5c2};aGt=V?~vIM}ZdPECDI)47|CWBCfDWUbxBCnmYivQ*0Nu_xb*C>~C9(VjHM zxe<*D<#dQ8TlpMX2c@M<9$w!RP$hpG4cs%AI){jp*Sj|*`m)5(Bw*A0$*i-(CA5#%>a)$+jI2C9r6|(>J8InryENI z$NohnxDUB;wAYDwrb*!N3noBTKPpPN}~09SEL18tkG zxgz(RYU_;DPT{l?Q$+eaZaxnsWCA^ds^0PVRkIM%bOd|G2IEBBiz{&^JtNsODs;5z zICt_Zj8wo^KT$7Bg4H+y!Df#3mbl%%?|EXe!&(Vmac1DJ*y~3+kRKAD=Ovde4^^%~ zw<9av18HLyrf*_>Slp;^i`Uy~`mvBjZ|?Ad63yQa#YK`4+c6;pW4?XIY9G1(Xh9WO8{F-Aju+nS9Vmv=$Ac0ienZ+p9*O%NG zMZKy5?%Z6TAJTE?o5vEr0r>f>hb#2w2U3DL64*au_@P!J!TL`oH2r*{>ffu6|A7tv zL4juf$DZ1MW5ZPsG!5)`k8d8c$J$o;%EIL0va9&GzWvkS%ZsGb#S(?{!UFOZ9<$a| zY|a+5kmD5N&{vRqkgY>aHsBT&`rg|&kezoD)gP0fsNYHsO#TRc_$n6Lf1Z{?+DLziXlHrq4sf(!>O{?Tj;Eh@%)+nRE_2VxbN&&%%caU#JDU%vL3}Cb zsb4AazPI{>8H&d=jUaZDS$-0^AxE@utGs;-Ez_F(qC9T=UZX=>ok2k2 ziTn{K?y~a5reD2A)P${NoI^>JXn>`IeArow(41c-Wm~)wiryEP(OS{YXWi7;%dG9v zI?mwu1MxD{yp_rrk!j^cKM)dc4@p4Ezyo%lRN|XyD}}>v=Xoib0gOcdXrQ^*61HNj z=NP|pd>@yfvr-=m{8$3A8TQGMTE7g=z!%yt`8`Bk-0MMwW~h^++;qyUP!J~ykh1GO z(FZ59xuFR$(WE;F@UUyE@Sp>`aVNjyj=Ty>_Vo}xf`e7`F;j-IgL5`1~-#70$9_=uBMq!2&1l zomRgpD58@)YYfvLtPW}{C5B35R;ZVvB<<#)x%srmc_S=A7F@DW8>QOEGwD6suhwCg z>Pa+YyULhmw%BA*4yjDp|2{!T98~<6Yfd(wo1mQ!KWwq0eg+6)o1>W~f~kL<-S+P@$wx*zeI|1t7z#Sxr5 zt6w+;YblPQNplq4Z#T$GLX#j6yldXAqj>4gAnnWtBICUnA&-dtnlh=t0Ho_vEKwV` z)DlJi#!@nkYV#$!)@>udAU*hF?V`2$Hf=V&6PP_|r#Iv*J$9)pF@X3`k;5})9^o4y z&)~?EjX5yX12O(BsFy-l6}nYeuKkiq`u9145&3Ssg^y{5G3Pse z9w(YVa0)N-fLaBq1`P!_#>SS(8fh_5!f{UrgZ~uEdeMJIz7DzI5!NHHqQtm~#CPij z?=N|J>nPR6_sL7!f4hD_|KH`vf8(Wpnj-(gPWH+ZvID}%?~68SwhPTC3u1_cB`otq z)U?6qo!ZLi5b>*KnYHWW=3F!p%h1;h{L&(Q&{qY6)_qxNfbP6E3yYpW!EO+IW3?@J z);4>g4gnl^8klu7uA>eGF6rIGSynacogr)KUwE_R4E5Xzi*Qir@b-jy55-JPC8c~( zo!W8y9OGZ&`xmc8;=4-U9=h{vCqfCNzYirONmGbRQlR`WWlgnY+1wCXbMz&NT~9*| z6@FrzP!LX&{no2!Ln_3|I==_4`@}V?4a;YZKTdw;vT<+K+z=uWbW(&bXEaWJ^W8Td z-3&1bY^Z*oM<=M}LVt>_j+p=2Iu7pZmbXrhQ_k)ysE9yXKygFNw$5hwDn(M>H+e1&9BM5!|81vd%r%vEm zqxY3?F@fb6O#5UunwgAHR9jp_W2zZ}NGp2%mTW@(hz7$^+a`A?mb8|_G*GNMJ) zjqegXQio=i@AINre&%ofexAr95aop5C+0MZ0m-l=MeO8m3epm7U%vZB8+I+C*iNFM z#T3l`gknX;D$-`2XT^Cg*vrv=RH+P;_dfF++cP?B_msQI4j+lt&rX2)3GaJx%W*Nn zkML%D{z5tpHH=dksQ*gzc|}gzW;lwAbxoR07VNgS*-c3d&8J|;@3t^ zVUz*J*&r7DFRuFVDCJDK8V9NN5hvpgGjwx+5n)qa;YCKe8TKtdnh{I7NU9BCN!0dq zczrBk8pE{{@vJa9ywR@mq*J=v+PG;?fwqlJVhijG!3VmIKs>9T6r7MJpC)m!Tc#>g zMtVsU>wbwFJEfwZ{vB|ZlttNe83)$iz`~#8UJ^r)lJ@HA&G#}W&ZH*;k{=TavpjWE z7hdyLZPf*X%Gm}i`Y{OGeeu^~nB8=`{r#TUrM-`;1cBvEd#d!kPqIgYySYhN-*1;L z^byj%Yi}Gx)Wnkosi337BKs}+5H5dth1JA{Ir-JKN$7zC)*}hqeoD(WfaUDPT>0`- z(6sa0AoIqASwF`>hP}^|)a_j2s^PQn*qVC{Q}htR z5-)duBFXT_V56-+UohKXlq~^6uf!6sA#ttk1o~*QEy_Y-S$gAvq47J9Vtk$5oA$Ct zYhYJ@8{hsC^98${!#Ho?4y5MCa7iGnfz}b9jE~h%EAAv~Qxu)_rAV;^cygV~5r_~?l=B`zObj7S=H=~$W zPtI_m%g$`kL_fVUk9J@>EiBH zOO&jtn~&`hIFMS5S`g8w94R4H40mdNUH4W@@XQk1sr17b{@y|JB*G9z1|CrQjd+GX z6+KyURG3;!*BQrentw{B2R&@2&`2}n(z-2&X7#r!{yg@Soy}cRD~j zj9@UBW+N|4HW4AWapy4wfUI- zZ`gSL6DUlgj*f1hSOGXG0IVH8HxK?o2|3HZ;KW{K+yPAlxtb)NV_2AwJm|E)FRs&& z=c^e7bvUsztY|+f^k7NXs$o1EUq>cR7C0$UKi6IooHWlK_#?IWDkvywnzg&ThWo^? z2O_N{5X39#?eV9l)xI(>@!vSB{DLt*oY!K1R8}_?%+0^C{d9a%N4 zoxHVT1&Lm|uDX%$QrBun5e-F`HJ^T$ zmzv)p@4ZHd_w9!%Hf9UYNvGCw2TTTbrj9pl+T9%-_-}L(tES>Or-}Z4F*{##n3~L~TuxjirGuIY#H7{%$E${?p{Q01 zi6T`n;rbK1yIB9jmQNycD~yZq&mbIsFWHo|ZAChSFPQa<(%d8mGw*V3fh|yFoxOOiWJd(qvVb!Z$b88cg->N=qO*4k~6;R==|9ihg&riu#P~s4Oap9O7f%crSr^rljeIfXDEg>wi)&v*a%7zpz<9w z*r!3q9J|390x`Zk;g$&OeN&ctp)VKRpDSV@kU2Q>jtok($Y-*x8_$2piTxun81@vt z!Vj?COa0fg2RPXMSIo26T=~0d`{oGP*eV+$!0I<(4azk&Vj3SiG=Q!6mX0p$z7I}; z9BJUFgT-K9MQQ-0@Z=^7R<{bn2Fm48endsSs`V7_@%8?Bxkqv>BDoVcj?K#dV#uUP zL1ND~?D-|VGKe3Rw_7-Idpht>H6XRLh*U7epS6byiGvJpr%d}XwfusjH9g;Z98H`x zyde%%5mhGOiL4wljCaWCk-&uE4_OOccb9c!ZaWt4B(wYl!?vyzl%7n~QepN&eFUrw zFIOl9c({``6~QD+43*_tzP{f2x41h(?b43^y6=iwyB)2os5hBE!@YUS5?N_tXd=h( z)WE286Fbd>R4M^P{!G)f;h<3Q>Fipuy+d2q-)!RyTgt;wr$(?9ox3;q+{E*ZQHhOn;lM`cjnu9 zXa48ks-v(~b*;MAI<>YZH(^NV8vjb34beE<_cwKlJoR;k6lJNSP6v}uiyRD?|0w+X@o1ONrH8a$fCxXpf? z?$DL0)7|X}Oc%h^zrMKWc-NS9I0Utu@>*j}b@tJ=ixQSJ={4@854wzW@E>VSL+Y{i z#0b=WpbCZS>kUCO_iQz)LoE>P5LIG-hv9E+oG}DtlIDF>$tJ1aw9^LuhLEHt?BCj& z(O4I8v1s#HUi5A>nIS-JK{v!7dJx)^Yg%XjNmlkWAq2*cv#tHgz`Y(bETc6CuO1VkN^L-L3j_x<4NqYb5rzrLC-7uOv z!5e`GZt%B782C5-fGnn*GhDF$%(qP<74Z}3xx+{$4cYKy2ikxI7B2N+2r07DN;|-T->nU&!=Cm#rZt%O_5c&1Z%nlWq3TKAW0w zQqemZw_ue--2uKQsx+niCUou?HjD`xhEjjQd3%rrBi82crq*~#uA4+>vR<_S{~5ce z-2EIl?~s z1=GVL{NxP1N3%=AOaC}j_Fv=ur&THz zyO!d9kHq|c73kpq`$+t+8Bw7MgeR5~`d7ChYyGCBWSteTB>8WAU(NPYt2Dk`@#+}= zI4SvLlyk#pBgVigEe`?NG*vl7V6m+<}%FwPV=~PvvA)=#ths==DRTDEYh4V5}Cf$z@#;< zyWfLY_5sP$gc3LLl2x+Ii)#b2nhNXJ{R~vk`s5U7Nyu^3yFg&D%Txwj6QezMX`V(x z=C`{76*mNb!qHHs)#GgGZ_7|vkt9izl_&PBrsu@}L`X{95-2jf99K)0=*N)VxBX2q z((vkpP2RneSIiIUEnGb?VqbMb=Zia+rF~+iqslydE34cSLJ&BJW^3knX@M;t*b=EA zNvGzv41Ld_T+WT#XjDB840vovUU^FtN_)G}7v)1lPetgpEK9YS^OWFkPoE{ovj^=@ zO9N$S=G$1ecndT_=5ehth2Lmd1II-PuT~C9`XVePw$y8J#dpZ?Tss<6wtVglm(Ok7 z3?^oi@pPio6l&!z8JY(pJvG=*pI?GIOu}e^EB6QYk$#FJQ%^AIK$I4epJ+9t?KjqA+bkj&PQ*|vLttme+`9G=L% ziadyMw_7-M)hS(3E$QGNCu|o23|%O+VN7;Qggp?PB3K-iSeBa2b}V4_wY`G1Jsfz4 z9|SdB^;|I8E8gWqHKx!vj_@SMY^hLEIbSMCuE?WKq=c2mJK z8LoG-pnY!uhqFv&L?yEuxo{dpMTsmCn)95xanqBrNPTgXP((H$9N${Ow~Is-FBg%h z53;|Y5$MUN)9W2HBe2TD`ct^LHI<(xWrw}$qSoei?}s)&w$;&!14w6B6>Yr6Y8b)S z0r71`WmAvJJ`1h&poLftLUS6Ir zC$bG9!Im_4Zjse)#K=oJM9mHW1{%l8sz$1o?ltdKlLTxWWPB>Vk22czVt|1%^wnN@*!l)}?EgtvhC>vlHm^t+ogpgHI1_$1ox9e;>0!+b(tBrmXRB`PY1vp-R**8N7 zGP|QqI$m(Rdu#=(?!(N}G9QhQ%o!aXE=aN{&wtGP8|_qh+7a_j_sU5|J^)vxq;# zjvzLn%_QPHZZIWu1&mRAj;Sa_97p_lLq_{~j!M9N^1yp3U_SxRqK&JnR%6VI#^E12 z>CdOVI^_9aPK2eZ4h&^{pQs}xsijXgFYRIxJ~N7&BB9jUR1fm!(xl)mvy|3e6-B3j zJn#ajL;bFTYJ2+Q)tDjx=3IklO@Q+FFM}6UJr6km7hj7th9n_&JR7fnqC!hTZoM~T zBeaVFp%)0cbPhejX<8pf5HyRUj2>aXnXBqDJe73~J%P(2C?-RT{c3NjE`)om! zl$uewSgWkE66$Kb34+QZZvRn`fob~Cl9=cRk@Es}KQm=?E~CE%spXaMO6YmrMl%9Q zlA3Q$3|L1QJ4?->UjT&CBd!~ru{Ih^in&JXO=|<6J!&qp zRe*OZ*cj5bHYlz!!~iEKcuE|;U4vN1rk$xq6>bUWD*u(V@8sG^7>kVuo(QL@Ki;yL zWC!FT(q{E8#on>%1iAS0HMZDJg{Z{^!De(vSIq&;1$+b)oRMwA3nc3mdTSG#3uYO_ z>+x;7p4I;uHz?ZB>dA-BKl+t-3IB!jBRgdvAbW!aJ(Q{aT>+iz?91`C-xbe)IBoND z9_Xth{6?(y3rddwY$GD65IT#f3<(0o#`di{sh2gm{dw*#-Vnc3r=4==&PU^hCv$qd zjw;>i&?L*Wq#TxG$mFIUf>eK+170KG;~+o&1;Tom9}}mKo23KwdEM6UonXgc z!6N(@k8q@HPw{O8O!lAyi{rZv|DpgfU{py+j(X_cwpKqcalcqKIr0kM^%Br3SdeD> zHSKV94Yxw;pjzDHo!Q?8^0bb%L|wC;4U^9I#pd5O&eexX+Im{ z?jKnCcsE|H?{uGMqVie_C~w7GX)kYGWAg%-?8|N_1#W-|4F)3YTDC+QSq1s!DnOML3@d`mG%o2YbYd#jww|jD$gotpa)kntakp#K;+yo-_ZF9qrNZw<%#C zuPE@#3RocLgPyiBZ+R_-FJ_$xP!RzWm|aN)S+{$LY9vvN+IW~Kf3TsEIvP+B9Mtm! zpfNNxObWQpLoaO&cJh5>%slZnHl_Q~(-Tfh!DMz(dTWld@LG1VRF`9`DYKhyNv z2pU|UZ$#_yUx_B_|MxUq^glT}O5Xt(Vm4Mr02><%C)@v;vPb@pT$*yzJ4aPc_FZ3z z3}PLoMBIM>q_9U2rl^sGhk1VUJ89=*?7|v`{!Z{6bqFMq(mYiA?%KbsI~JwuqVA9$H5vDE+VocjX+G^%bieqx->s;XWlKcuv(s%y%D5Xbc9+ zc(_2nYS1&^yL*ey664&4`IoOeDIig}y-E~_GS?m;D!xv5-xwz+G`5l6V+}CpeJDi^ z%4ed$qowm88=iYG+(`ld5Uh&>Dgs4uPHSJ^TngXP_V6fPyl~>2bhi20QB%lSd#yYn zO05?KT1z@?^-bqO8Cg`;ft>ilejsw@2%RR7;`$Vs;FmO(Yr3Fp`pHGr@P2hC%QcA|X&N2Dn zYf`MqXdHi%cGR@%y7Rg7?d3?an){s$zA{!H;Ie5exE#c~@NhQUFG8V=SQh%UxUeiV zd7#UcYqD=lk-}sEwlpu&H^T_V0{#G?lZMxL7ih_&{(g)MWBnCZxtXg znr#}>U^6!jA%e}@Gj49LWG@*&t0V>Cxc3?oO7LSG%~)Y5}f7vqUUnQ;STjdDU}P9IF9d9<$;=QaXc zL1^X7>fa^jHBu_}9}J~#-oz3Oq^JmGR#?GO7b9a(=R@fw@}Q{{@`Wy1vIQ#Bw?>@X z-_RGG@wt|%u`XUc%W{J z>iSeiz8C3H7@St3mOr_mU+&bL#Uif;+Xw-aZdNYUpdf>Rvu0i0t6k*}vwU`XNO2he z%miH|1tQ8~ZK!zmL&wa3E;l?!!XzgV#%PMVU!0xrDsNNZUWKlbiOjzH-1Uoxm8E#r`#2Sz;-o&qcqB zC-O_R{QGuynW14@)7&@yw1U}uP(1cov)twxeLus0s|7ayrtT8c#`&2~Fiu2=R;1_4bCaD=*E@cYI>7YSnt)nQc zohw5CsK%m?8Ack)qNx`W0_v$5S}nO|(V|RZKBD+btO?JXe|~^Qqur%@eO~<8-L^9d z=GA3-V14ng9L29~XJ>a5k~xT2152zLhM*@zlp2P5Eu}bywkcqR;ISbas&#T#;HZSf z2m69qTV(V@EkY(1Dk3`}j)JMo%ZVJ*5eB zYOjIisi+igK0#yW*gBGj?@I{~mUOvRFQR^pJbEbzFxTubnrw(Muk%}jI+vXmJ;{Q6 zrSobKD>T%}jV4Ub?L1+MGOD~0Ir%-`iTnWZN^~YPrcP5y3VMAzQ+&en^VzKEb$K!Q z<7Dbg&DNXuow*eD5yMr+#08nF!;%4vGrJI++5HdCFcGLfMW!KS*Oi@=7hFwDG!h2< zPunUEAF+HncQkbfFj&pbzp|MU*~60Z(|Ik%Tn{BXMN!hZOosNIseT?R;A`W?=d?5X zK(FB=9mZusYahp|K-wyb={rOpdn=@;4YI2W0EcbMKyo~-#^?h`BA9~o285%oY zfifCh5Lk$SY@|2A@a!T2V+{^!psQkx4?x0HSV`(w9{l75QxMk!)U52Lbhn{8ol?S) zCKo*7R(z!uk<6*qO=wh!Pul{(qq6g6xW;X68GI_CXp`XwO zxuSgPRAtM8K7}5E#-GM!*ydOOG_{A{)hkCII<|2=ma*71ci_-}VPARm3crFQjLYV! z9zbz82$|l01mv`$WahE2$=fAGWkd^X2kY(J7iz}WGS z@%MyBEO=A?HB9=^?nX`@nh;7;laAjs+fbo!|K^mE!tOB>$2a_O0y-*uaIn8k^6Y zSbuv;5~##*4Y~+y7Z5O*3w4qgI5V^17u*ZeupVGH^nM&$qmAk|anf*>r zWc5CV;-JY-Z@Uq1Irpb^O`L_7AGiqd*YpGUShb==os$uN3yYvb`wm6d=?T*it&pDk zo`vhw)RZX|91^^Wa_ti2zBFyWy4cJu#g)_S6~jT}CC{DJ_kKpT`$oAL%b^!2M;JgT zM3ZNbUB?}kP(*YYvXDIH8^7LUxz5oE%kMhF!rnPqv!GiY0o}NR$OD=ITDo9r%4E>E0Y^R(rS^~XjWyVI6 zMOR5rPXhTp*G*M&X#NTL`Hu*R+u*QNoiOKg4CtNPrjgH>c?Hi4MUG#I917fx**+pJfOo!zFM&*da&G_x)L(`k&TPI*t3e^{crd zX<4I$5nBQ8Ax_lmNRa~E*zS-R0sxkz`|>7q_?*e%7bxqNm3_eRG#1ae3gtV9!fQpY z+!^a38o4ZGy9!J5sylDxZTx$JmG!wg7;>&5H1)>f4dXj;B+@6tMlL=)cLl={jLMxY zbbf1ax3S4>bwB9-$;SN2?+GULu;UA-35;VY*^9Blx)Jwyb$=U!D>HhB&=jSsd^6yw zL)?a|>GxU!W}ocTC(?-%z3!IUhw^uzc`Vz_g>-tv)(XA#JK^)ZnC|l1`@CdX1@|!| z_9gQ)7uOf?cR@KDp97*>6X|;t@Y`k_N@)aH7gY27)COv^P3ya9I{4z~vUjLR9~z1Z z5=G{mVtKH*&$*t0@}-i_v|3B$AHHYale7>E+jP`ClqG%L{u;*ff_h@)al?RuL7tOO z->;I}>%WI{;vbLP3VIQ^iA$4wl6@0sDj|~112Y4OFjMs`13!$JGkp%b&E8QzJw_L5 zOnw9joc0^;O%OpF$Qp)W1HI!$4BaXX84`%@#^dk^hFp^pQ@rx4g(8Xjy#!X%+X5Jd@fs3amGT`}mhq#L97R>OwT5-m|h#yT_-v@(k$q7P*9X~T*3)LTdzP!*B} z+SldbVWrrwQo9wX*%FyK+sRXTa@O?WM^FGWOE?S`R(0P{<6p#f?0NJvnBia?k^fX2 zNQs7K-?EijgHJY}&zsr;qJ<*PCZUd*x|dD=IQPUK_nn)@X4KWtqoJNHkT?ZWL_hF? zS8lp2(q>;RXR|F;1O}EE#}gCrY~#n^O`_I&?&z5~7N;zL0)3Tup`%)oHMK-^r$NT% zbFg|o?b9w(q@)6w5V%si<$!U<#}s#x@0aX-hP>zwS#9*75VXA4K*%gUc>+yzupTDBOKH8WR4V0pM(HrfbQ&eJ79>HdCvE=F z|J>s;;iDLB^3(9}?biKbxf1$lI!*Z%*0&8UUq}wMyPs_hclyQQi4;NUY+x2qy|0J; zhn8;5)4ED1oHwg+VZF|80<4MrL97tGGXc5Sw$wAI#|2*cvQ=jB5+{AjMiDHmhUC*a zlmiZ`LAuAn_}hftXh;`Kq0zblDk8?O-`tnilIh|;3lZp@F_osJUV9`*R29M?7H{Fy z`nfVEIDIWXmU&YW;NjU8)EJpXhxe5t+scf|VXM!^bBlwNh)~7|3?fWwo_~ZFk(22% zTMesYw+LNx3J-_|DM~`v93yXe=jPD{q;li;5PD?Dyk+b? zo21|XpT@)$BM$%F=P9J19Vi&1#{jM3!^Y&fr&_`toi`XB1!n>sbL%U9I5<7!@?t)~ z;&H%z>bAaQ4f$wIzkjH70;<8tpUoxzKrPhn#IQfS%9l5=Iu))^XC<58D!-O z{B+o5R^Z21H0T9JQ5gNJnqh#qH^na|z92=hONIM~@_iuOi|F>jBh-?aA20}Qx~EpDGElELNn~|7WRXRFnw+Wdo`|# zBpU=Cz3z%cUJ0mx_1($X<40XEIYz(`noWeO+x#yb_pwj6)R(__%@_Cf>txOQ74wSJ z0#F3(zWWaR-jMEY$7C*3HJrohc79>MCUu26mfYN)f4M~4gD`}EX4e}A!U}QV8!S47 z6y-U-%+h`1n`*pQuKE%Av0@)+wBZr9mH}@vH@i{v(m-6QK7Ncf17x_D=)32`FOjjo zg|^VPf5c6-!FxN{25dvVh#fog=NNpXz zfB$o+0jbRkHH{!TKhE709f+jI^$3#v1Nmf80w`@7-5$1Iv_`)W^px8P-({xwb;D0y z7LKDAHgX<84?l!I*Dvi2#D@oAE^J|g$3!)x1Ua;_;<@#l1fD}lqU2_tS^6Ht$1Wl} zBESo7o^)9-Tjuz$8YQSGhfs{BQV6zW7dA?0b(Dbt=UnQs&4zHfe_sj{RJ4uS-vQpC zX;Bbsuju4%!o8?&m4UZU@~ZZjeFF6ex2ss5_60_JS_|iNc+R0GIjH1@Z z=rLT9%B|WWgOrR7IiIwr2=T;Ne?30M!@{%Qf8o`!>=s<2CBpCK_TWc(DX51>e^xh8 z&@$^b6CgOd7KXQV&Y4%}_#uN*mbanXq(2=Nj`L7H7*k(6F8s6{FOw@(DzU`4-*77{ zF+dxpv}%mFpYK?>N_2*#Y?oB*qEKB}VoQ@bzm>ptmVS_EC(#}Lxxx730trt0G)#$b zE=wVvtqOct1%*9}U{q<)2?{+0TzZzP0jgf9*)arV)*e!f`|jgT{7_9iS@e)recI#z zbzolURQ+TOzE!ymqvBY7+5NnAbWxvMLsLTwEbFqW=CPyCsmJ}P1^V30|D5E|p3BC5 z)3|qgw@ra7aXb-wsa|l^in~1_fm{7bS9jhVRkYVO#U{qMp z)Wce+|DJ}4<2gp8r0_xfZpMo#{Hl2MfjLcZdRB9(B(A(f;+4s*FxV{1F|4d`*sRNd zp4#@sEY|?^FIJ;tmH{@keZ$P(sLh5IdOk@k^0uB^BWr@pk6mHy$qf&~rI>P*a;h0C{%oA*i!VjWn&D~O#MxN&f@1Po# zKN+ zrGrkSjcr?^R#nGl<#Q722^wbYcgW@{+6CBS<1@%dPA8HC!~a`jTz<`g_l5N1M@9wn9GOAZ>nqNgq!yOCbZ@1z`U_N`Z>}+1HIZxk*5RDc&rd5{3qjRh8QmT$VyS;jK z;AF+r6XnnCp=wQYoG|rT2@8&IvKq*IB_WvS%nt%e{MCFm`&W*#LXc|HrD?nVBo=(8*=Aq?u$sDA_sC_RPDUiQ+wnIJET8vx$&fxkW~kP9qXKt zozR)@xGC!P)CTkjeWvXW5&@2?)qt)jiYWWBU?AUtzAN}{JE1I)dfz~7$;}~BmQF`k zpn11qmObXwRB8&rnEG*#4Xax3XBkKlw(;tb?Np^i+H8m(Wyz9k{~ogba@laiEk;2! zV*QV^6g6(QG%vX5Um#^sT&_e`B1pBW5yVth~xUs#0}nv?~C#l?W+9Lsb_5)!71rirGvY zTIJ$OPOY516Y|_014sNv+Z8cc5t_V=i>lWV=vNu#!58y9Zl&GsMEW#pPYPYGHQ|;vFvd*9eM==$_=vc7xnyz0~ zY}r??$<`wAO?JQk@?RGvkWVJlq2dk9vB(yV^vm{=NVI8dhsX<)O(#nr9YD?I?(VmQ z^r7VfUBn<~p3()8yOBjm$#KWx!5hRW)5Jl7wY@ky9lNM^jaT##8QGVsYeaVywmpv>X|Xj7gWE1Ezai&wVLt3p)k4w~yrskT-!PR!kiyQlaxl(( zXhF%Q9x}1TMt3~u@|#wWm-Vq?ZerK={8@~&@9r5JW}r#45#rWii};t`{5#&3$W)|@ zbAf2yDNe0q}NEUvq_Quq3cTjcw z@H_;$hu&xllCI9CFDLuScEMg|x{S7GdV8<&Mq=ezDnRZAyX-8gv97YTm0bg=d)(>N z+B2FcqvI9>jGtnK%eO%y zoBPkJTk%y`8TLf4)IXPBn`U|9>O~WL2C~C$z~9|0m*YH<-vg2CD^SX#&)B4ngOSG$ zV^wmy_iQk>dfN@Pv(ckfy&#ak@MLC7&Q6Ro#!ezM*VEh`+b3Jt%m(^T&p&WJ2Oqvj zs-4nq0TW6cv~(YI$n0UkfwN}kg3_fp?(ijSV#tR9L0}l2qjc7W?i*q01=St0eZ=4h zyGQbEw`9OEH>NMuIe)hVwYHsGERWOD;JxEiO7cQv%pFCeR+IyhwQ|y@&^24k+|8fD zLiOWFNJ2&vu2&`Jv96_z-Cd5RLgmeY3*4rDOQo?Jm`;I_(+ejsPM03!ly!*Cu}Cco zrQSrEDHNyzT(D5s1rZq!8#?f6@v6dB7a-aWs(Qk>N?UGAo{gytlh$%_IhyL7h?DLXDGx zgxGEBQoCAWo-$LRvM=F5MTle`M})t3vVv;2j0HZY&G z22^iGhV@uaJh(XyyY%} zd4iH_UfdV#T=3n}(Lj^|n;O4|$;xhu*8T3hR1mc_A}fK}jfZ7LX~*n5+`8N2q#rI$ z@<_2VANlYF$vIH$ zl<)+*tIWW78IIINA7Rr7i{<;#^yzxoLNkXL)eSs=%|P>$YQIh+ea_3k z_s7r4%j7%&*NHSl?R4k%1>Z=M9o#zxY!n8sL5>BO-ZP;T3Gut>iLS@U%IBrX6BA3k z)&@q}V8a{X<5B}K5s(c(LQ=%v1ocr`t$EqqY0EqVjr65usa=0bkf|O#ky{j3)WBR(((L^wmyHRzoWuL2~WTC=`yZ zn%VX`L=|Ok0v7?s>IHg?yArBcync5rG#^+u)>a%qjES%dRZoIyA8gQ;StH z1Ao7{<&}6U=5}4v<)1T7t!J_CL%U}CKNs-0xWoTTeqj{5{?Be$L0_tk>M9o8 zo371}S#30rKZFM{`H_(L`EM9DGp+Mifk&IP|C2Zu_)Ghr4Qtpmkm1osCf@%Z$%t+7 zYH$Cr)Ro@3-QDeQJ8m+x6%;?YYT;k6Z0E-?kr>x33`H%*ueBD7Zx~3&HtWn0?2Wt} zTG}*|v?{$ajzt}xPzV%lL1t-URi8*Zn)YljXNGDb>;!905Td|mpa@mHjIH%VIiGx- zd@MqhpYFu4_?y5N4xiHn3vX&|e6r~Xt> zZG`aGq|yTNjv;9E+Txuoa@A(9V7g?1_T5FzRI;!=NP1Kqou1z5?%X~Wwb{trRfd>i z8&y^H)8YnKyA_Fyx>}RNmQIczT?w2J4SNvI{5J&}Wto|8FR(W;Qw#b1G<1%#tmYzQ zQ2mZA-PAdi%RQOhkHy9Ea#TPSw?WxwL@H@cbkZwIq0B!@ns}niALidmn&W?!Vd4Gj zO7FiuV4*6Mr^2xlFSvM;Cp_#r8UaqIzHJQg_z^rEJw&OMm_8NGAY2)rKvki|o1bH~ z$2IbfVeY2L(^*rMRU1lM5Y_sgrDS`Z??nR2lX;zyR=c%UyGb*%TC-Dil?SihkjrQy~TMv6;BMs7P8il`H7DmpVm@rJ;b)hW)BL)GjS154b*xq-NXq2cwE z^;VP7ua2pxvCmxrnqUYQMH%a%nHmwmI33nJM(>4LznvY*k&C0{8f*%?zggpDgkuz&JBx{9mfb@wegEl2v!=}Sq2Gaty0<)UrOT0{MZtZ~j5y&w zXlYa_jY)I_+VA-^#mEox#+G>UgvM!Ac8zI<%JRXM_73Q!#i3O|)lOP*qBeJG#BST0 zqohi)O!|$|2SeJQo(w6w7%*92S})XfnhrH_Z8qe!G5>CglP=nI7JAOW?(Z29;pXJ9 zR9`KzQ=WEhy*)WH>$;7Cdz|>*i>=##0bB)oU0OR>>N<21e4rMCHDemNi2LD>Nc$;& zQRFthpWniC1J6@Zh~iJCoLOxN`oCKD5Q4r%ynwgUKPlIEd#?QViIqovY|czyK8>6B zSP%{2-<;%;1`#0mG^B(8KbtXF;Nf>K#Di72UWE4gQ%(_26Koiad)q$xRL~?pN71ZZ zujaaCx~jXjygw;rI!WB=xrOJO6HJ!!w}7eiivtCg5K|F6$EXa)=xUC za^JXSX98W`7g-tm@uo|BKj39Dl;sg5ta;4qjo^pCh~{-HdLl6qI9Ix6f$+qiZ$}s= zNguKrU;u+T@ko(Vr1>)Q%h$?UKXCY>3se%&;h2osl2D zE4A9bd7_|^njDd)6cI*FupHpE3){4NQ*$k*cOWZ_?CZ>Z4_fl@n(mMnYK62Q1d@+I zr&O))G4hMihgBqRIAJkLdk(p(D~X{-oBUA+If@B}j& zsHbeJ3RzTq96lB7d($h$xTeZ^gP0c{t!Y0c)aQE;$FY2!mACg!GDEMKXFOPI^)nHZ z`aSPJpvV0|bbrzhWWkuPURlDeN%VT8tndV8?d)eN*i4I@u zVKl^6{?}A?P)Fsy?3oi#clf}L18t;TjNI2>eI&(ezDK7RyqFxcv%>?oxUlonv(px) z$vnPzRH`y5A(x!yOIfL0bmgeMQB$H5wenx~!ujQK*nUBW;@Em&6Xv2%s(~H5WcU2R z;%Nw<$tI)a`Ve!>x+qegJnQsN2N7HaKzrFqM>`6R*gvh%O*-%THt zrB$Nk;lE;z{s{r^PPm5qz(&lM{sO*g+W{sK+m3M_z=4=&CC>T`{X}1Vg2PEfSj2x_ zmT*(x;ov%3F?qoEeeM>dUn$a*?SIGyO8m806J1W1o+4HRhc2`9$s6hM#qAm zChQ87b~GEw{ADfs+5}FJ8+|bIlIv(jT$Ap#hSHoXdd9#w<#cA<1Rkq^*EEkknUd4& zoIWIY)sAswy6fSERVm&!SO~#iN$OgOX*{9@_BWFyJTvC%S++ilSfCrO(?u=Dc?CXZ zzCG&0yVR{Z`|ZF0eEApWEo#s9osV>F{uK{QA@BES#&;#KsScf>y zvs?vIbI>VrT<*!;XmQS=bhq%46-aambZ(8KU-wOO2=en~D}MCToB_u;Yz{)1ySrPZ z@=$}EvjTdzTWU7c0ZI6L8=yP+YRD_eMMos}b5vY^S*~VZysrkq<`cK3>>v%uy7jgq z0ilW9KjVDHLv0b<1K_`1IkbTOINs0=m-22c%M~l=^S}%hbli-3?BnNq?b`hx^HX2J zIe6ECljRL0uBWb`%{EA=%!i^4sMcj+U_TaTZRb+~GOk z^ZW!nky0n*Wb*r+Q|9H@ml@Z5gU&W`(z4-j!OzC1wOke`TRAYGZVl$PmQ16{3196( zO*?`--I}Qf(2HIwb2&1FB^!faPA2=sLg(@6P4mN)>Dc3i(B0;@O-y2;lM4akD>@^v z=u>*|!s&9zem70g7zfw9FXl1bpJW(C#5w#uy5!V?Q(U35A~$dR%LDVnq@}kQm13{} zd53q3N(s$Eu{R}k2esbftfjfOITCL;jWa$}(mmm}d(&7JZ6d3%IABCapFFYjdEjdK z&4Edqf$G^MNAtL=uCDRs&Fu@FXRgX{*0<(@c3|PNHa>L%zvxWS={L8%qw`STm+=Rd zA}FLspESSIpE_^41~#5yI2bJ=9`oc;GIL!JuW&7YetZ?0H}$$%8rW@*J37L-~Rsx!)8($nI4 zZhcZ2^=Y+p4YPl%j!nFJA|*M^gc(0o$i3nlphe+~-_m}jVkRN{spFs(o0ajW@f3K{ zDV!#BwL322CET$}Y}^0ixYj2w>&Xh12|R8&yEw|wLDvF!lZ#dOTHM9pK6@Nm-@9Lnng4ZHBgBSrr7KI8YCC9DX5Kg|`HsiwJHg2(7#nS;A{b3tVO?Z% za{m5b3rFV6EpX;=;n#wltDv1LE*|g5pQ+OY&*6qCJZc5oDS6Z6JD#6F)bWxZSF@q% z+1WV;m!lRB!n^PC>RgQCI#D1br_o^#iPk>;K2hB~0^<~)?p}LG%kigm@moD#q3PE+ zA^Qca)(xnqw6x>XFhV6ku9r$E>bWNrVH9fum0?4s?Rn2LG{Vm_+QJHse6xa%nzQ?k zKug4PW~#Gtb;#5+9!QBgyB@q=sk9=$S{4T>wjFICStOM?__fr+Kei1 z3j~xPqW;W@YkiUM;HngG!;>@AITg}vAE`M2Pj9Irl4w1fo4w<|Bu!%rh%a(Ai^Zhi zs92>v5;@Y(Zi#RI*ua*h`d_7;byQSa*v9E{2x$<-_=5Z<7{%)}4XExANcz@rK69T0x3%H<@frW>RA8^swA+^a(FxK| zFl3LD*ImHN=XDUkrRhp6RY5$rQ{bRgSO*(vEHYV)3Mo6Jy3puiLmU&g82p{qr0F?ohmbz)f2r{X2|T2 z$4fdQ=>0BeKbiVM!e-lIIs8wVTuC_m7}y4A_%ikI;Wm5$9j(^Y z(cD%U%k)X>_>9~t8;pGzL6L-fmQO@K; zo&vQzMlgY95;1BSkngY)e{`n0!NfVgf}2mB3t}D9@*N;FQ{HZ3Pb%BK6;5#-O|WI( zb6h@qTLU~AbVW#_6?c!?Dj65Now7*pU{h!1+eCV^KCuPAGs28~3k@ueL5+u|Z-7}t z9|lskE`4B7W8wMs@xJa{#bsCGDFoRSNSnmNYB&U7 zVGKWe%+kFB6kb)e;TyHfqtU6~fRg)f|>=5(N36)0+C z`hv65J<$B}WUc!wFAb^QtY31yNleq4dzmG`1wHTj=c*=hay9iD071Hc?oYoUk|M*_ zU1GihAMBsM@5rUJ(qS?9ZYJ6@{bNqJ`2Mr+5#hKf?doa?F|+^IR!8lq9)wS3tF_9n zW_?hm)G(M+MYb?V9YoX^_mu5h-LP^TL^!Q9Z7|@sO(rg_4+@=PdI)WL(B7`!K^ND- z-uIuVDCVEdH_C@c71YGYT^_Scf_dhB8Z2Xy6vGtBSlYud9vggOqv^L~F{BraSE_t} zIkP+Hp2&nH^-MNEs}^`oMLy11`PQW$T|K(`Bu*(f@)mv1-qY(_YG&J2M2<7k;;RK~ zL{Fqj9yCz8(S{}@c)S!65aF<=&eLI{hAMErCx&>i7OeDN>okvegO87OaG{Jmi<|}D zaT@b|0X{d@OIJ7zvT>r+eTzgLq~|Dpu)Z&db-P4z*`M$UL51lf>FLlq6rfG)%doyp z)3kk_YIM!03eQ8Vu_2fg{+osaEJPtJ-s36R+5_AEG12`NG)IQ#TF9c@$99%0iye+ zUzZ57=m2)$D(5Nx!n)=5Au&O0BBgwxIBaeI(mro$#&UGCr<;C{UjJVAbVi%|+WP(a zL$U@TYCxJ=1{Z~}rnW;7UVb7+ZnzgmrogDxhjLGo>c~MiJAWs&&;AGg@%U?Y^0JhL ze(x6Z74JG6FlOFK(T}SXQfhr}RIFl@QXKnIcXYF)5|V~e-}suHILKT-k|<*~Ij|VF zC;t@=uj=hot~*!C68G8hTA%8SzOfETOXQ|3FSaIEjvBJp(A)7SWUi5!Eu#yWgY+;n zlm<$+UDou*V+246_o#V4kMdto8hF%%Lki#zPh}KYXmMf?hrN0;>Mv%`@{0Qn`Ujp) z=lZe+13>^Q!9zT);H<(#bIeRWz%#*}sgUX9P|9($kexOyKIOc`dLux}c$7It4u|Rl z6SSkY*V~g_B-hMPo_ak>>z@AVQ(_N)VY2kB3IZ0G(iDUYw+2d7W^~(Jq}KY=JnWS( z#rzEa&0uNhJ>QE8iiyz;n2H|SV#Og+wEZv=f2%1ELX!SX-(d3tEj$5$1}70Mp<&eI zCkfbByL7af=qQE@5vDVxx1}FSGt_a1DoE3SDI+G)mBAna)KBG4p8Epxl9QZ4BfdAN zFnF|Y(umr;gRgG6NLQ$?ZWgllEeeq~z^ZS7L?<(~O&$5|y)Al^iMKy}&W+eMm1W z7EMU)u^ke(A1#XCV>CZ71}P}0x)4wtHO8#JRG3MA-6g=`ZM!FcICCZ{IEw8Dm2&LQ z1|r)BUG^0GzI6f946RrBlfB1Vs)~8toZf~7)+G;pv&XiUO(%5bm)pl=p>nV^o*;&T z;}@oZSibzto$arQgfkp|z4Z($P>dTXE{4O=vY0!)kDO* zGF8a4wq#VaFpLfK!iELy@?-SeRrdz%F*}hjKcA*y@mj~VD3!it9lhRhX}5YOaR9$} z3mS%$2Be7{l(+MVx3 z(4?h;P!jnRmX9J9sYN#7i=iyj_5q7n#X(!cdqI2lnr8T$IfOW<_v`eB!d9xY1P=2q&WtOXY=D9QYteP)De?S4}FK6#6Ma z=E*V+#s8>L;8aVroK^6iKo=MH{4yEZ_>N-N z`(|;aOATba1^asjxlILk<4}f~`39dBFlxj>Dw(hMYKPO3EEt1@S`1lxFNM+J@uB7T zZ8WKjz7HF1-5&2=l=fqF-*@>n5J}jIxdDwpT?oKM3s8Nr`x8JnN-kCE?~aM1H!hAE z%%w(3kHfGwMnMmNj(SU(w42OrC-euI>Dsjk&jz3ts}WHqmMpzQ3vZrsXrZ|}+MHA7 z068obeXZTsO*6RS@o3x80E4ok``rV^Y3hr&C1;|ZZ0|*EKO`$lECUYG2gVFtUTw)R z4Um<0ZzlON`zTdvVdL#KFoMFQX*a5wM0Czp%wTtfK4Sjs)P**RW&?lP$(<}q%r68Z zS53Y!d@&~ne9O)A^tNrXHhXBkj~$8j%pT1%%mypa9AW5E&s9)rjF4@O3ytH{0z6riz|@< zB~UPh*wRFg2^7EbQrHf0y?E~dHlkOxof_a?M{LqQ^C!i2dawHTPYUE=X@2(3<=OOxs8qn_(y>pU>u^}3y&df{JarR0@VJn0f+U%UiF=$Wyq zQvnVHESil@d|8&R<%}uidGh7@u^(%?$#|&J$pvFC-n8&A>utA=n3#)yMkz+qnG3wd zP7xCnF|$9Dif@N~L)Vde3hW8W!UY0BgT2v(wzp;tlLmyk2%N|0jfG$%<;A&IVrOI< z!L)o>j>;dFaqA3pL}b-Je(bB@VJ4%!JeX@3x!i{yIeIso^=n?fDX`3bU=eG7sTc%g%ye8$v8P@yKE^XD=NYxTb zbf!Mk=h|otpqjFaA-vs5YOF-*GwWPc7VbaOW&stlANnCN8iftFMMrUdYNJ_Bnn5Vt zxfz@Ah|+4&P;reZxp;MmEI7C|FOv8NKUm8njF7Wb6Gi7DeODLl&G~}G4be&*Hi0Qw z5}77vL0P+7-B%UL@3n1&JPxW^d@vVwp?u#gVcJqY9#@-3X{ok#UfW3<1fb%FT`|)V~ggq z(3AUoUS-;7)^hCjdT0Kf{i}h)mBg4qhtHHBti=~h^n^OTH5U*XMgDLIR@sre`AaB$ zg)IGBET_4??m@cx&c~bA80O7B8CHR7(LX7%HThkeC*@vi{-pL%e)yXp!B2InafbDF zjPXf1mko3h59{lT6EEbxKO1Z5GF71)WwowO6kY|6tjSVSWdQ}NsK2x{>i|MKZK8%Q zfu&_0D;CO-Jg0#YmyfctyJ!mRJp)e#@O0mYdp|8x;G1%OZQ3Q847YWTyy|%^cpA;m zze0(5p{tMu^lDkpe?HynyO?a1$_LJl2L&mpeKu%8YvgRNr=%2z${%WThHG=vrWY@4 zsA`OP#O&)TetZ>s%h!=+CE15lOOls&nvC~$Qz0Ph7tHiP;O$i|eDwpT{cp>+)0-|; zY$|bB+Gbel>5aRN3>c0x)4U=|X+z+{ zn*_p*EQoquRL+=+p;=lm`d71&1NqBz&_ph)MXu(Nv6&XE7(RsS)^MGj5Q?Fwude-(sq zjJ>aOq!7!EN>@(fK7EE#;i_BGvli`5U;r!YA{JRodLBc6-`n8K+Fjgwb%sX;j=qHQ z7&Tr!)!{HXoO<2BQrV9Sw?JRaLXV8HrsNevvnf>Y-6|{T!pYLl7jp$-nEE z#X!4G4L#K0qG_4Z;Cj6=;b|Be$hi4JvMH!-voxqx^@8cXp`B??eFBz2lLD8RRaRGh zn7kUfy!YV~p(R|p7iC1Rdgt$_24i0cd-S8HpG|`@my70g^y`gu%#Tf_L21-k?sRRZHK&at(*ED0P8iw{7?R$9~OF$Ko;Iu5)ur5<->x!m93Eb zFYpIx60s=Wxxw=`$aS-O&dCO_9?b1yKiPCQmSQb>T)963`*U+Ydj5kI(B(B?HNP8r z*bfSBpSu)w(Z3j7HQoRjUG(+d=IaE~tv}y14zHHs|0UcN52fT8V_<@2ep_ee{QgZG zmgp8iv4V{k;~8@I%M3<#B;2R>Ef(Gg_cQM7%}0s*^)SK6!Ym+~P^58*wnwV1BW@eG z4sZLqsUvBbFsr#8u7S1r4teQ;t)Y@jnn_m5jS$CsW1um!p&PqAcc8!zyiXHVta9QC zY~wCwCF0U%xiQPD_INKtTb;A|Zf29(mu9NI;E zc-e>*1%(LSXB`g}kd`#}O;veb<(sk~RWL|f3ljxCnEZDdNSTDV6#Td({6l&y4IjKF z^}lIUq*ZUqgTPumD)RrCN{M^jhY>E~1pn|KOZ5((%F)G|*ZQ|r4zIbrEiV%42hJV8 z3xS)=!X1+=olbdGJ=yZil?oXLct8FM{(6ikLL3E%=q#O6(H$p~gQu6T8N!plf!96| z&Q3=`L~>U0zZh;z(pGR2^S^{#PrPxTRHD1RQOON&f)Siaf`GLj#UOk&(|@0?zm;Sx ztsGt8=29-MZs5CSf1l1jNFtNt5rFNZxJPvkNu~2}7*9468TWm>nN9TP&^!;J{-h)_ z7WsHH9|F%I`Pb!>KAS3jQWKfGivTVkMJLO-HUGM_a4UQ_%RgL6WZvrW+Z4ujZn;y@ zz9$=oO!7qVTaQAA^BhX&ZxS*|5dj803M=k&2%QrXda`-Q#IoZL6E(g+tN!6CA!CP* zCpWtCujIea)ENl0liwVfj)Nc<9mV%+e@=d`haoZ*`B7+PNjEbXBkv=B+Pi^~L#EO$D$ZqTiD8f<5$eyb54-(=3 zh)6i8i|jp(@OnRrY5B8t|LFXFQVQ895n*P16cEKTrT*~yLH6Z4e*bZ5otpRDri&+A zfNbK1D5@O=sm`fN=WzWyse!za5n%^+6dHPGX#8DyIK>?9qyX}2XvBWVqbP%%D)7$= z=#$WulZlZR<{m#gU7lwqK4WS1Ne$#_P{b17qe$~UOXCl>5b|6WVh;5vVnR<%d+Lnp z$uEmML38}U4vaW8>shm6CzB(Wei3s#NAWE3)a2)z@i{4jTn;;aQS)O@l{rUM`J@K& l00vQ5JBs~;vo!vr%%-k{2_Fq1Mn4QF81S)AQ99zk{{c4yR+0b! literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..1af9e093 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 00000000..1aa94a42 --- /dev/null +++ b/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 00000000..6689b85b --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/scripts/generate-base64-bytes.sh b/scripts/generate-base64-bytes.sh deleted file mode 100755 index 2b4eaaf9..00000000 --- a/scripts/generate-base64-bytes.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env sh - -if ! command -v openssl > /dev/null; then - echo "Error: OpenSSL not installed!" - exit 1 -fi - -if [ "$#" -ne 1 ]; then - length=32 -else - length="$1" -fi - -openssl rand -base64 "$length" diff --git a/scripts/generate-base64-uuid.sh b/scripts/generate-base64-uuid.sh deleted file mode 100755 index e92e3e48..00000000 --- a/scripts/generate-base64-uuid.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh - -uuid=$(uuidgen) - -echo "UUID: $uuid" -echo "UUID Base64: $(echo $uuid | xxd -r -p | base64)" diff --git a/scripts/generate-binprotos.sh b/scripts/generate-binprotos.sh deleted file mode 100755 index da2b82d1..00000000 --- a/scripts/generate-binprotos.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env sh - -if ! command -v cargo > /dev/null; then - echo "Error: cargo not installed!" - exit 1 -fi - -if [ -z "$TEST_CASE_DIR" ]; then - TEST_CASE_DIR="$PWD/test-cases" -fi - -for TEST_CASE_FILE in $(ls $TEST_CASE_DIR/*.jsonproto); do - TEST_CASE_NAME=$(basename $TEST_CASE_FILE .jsonproto) - - cargo run \ - "$TEST_CASE_DIR/$TEST_CASE_NAME.jsonproto" \ - > "$TEST_CASE_DIR/$TEST_CASE_NAME.binproto" -done diff --git a/scripts/generate-single-binproto.sh b/scripts/generate-single-binproto.sh deleted file mode 100755 index 24310232..00000000 --- a/scripts/generate-single-binproto.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env sh - -if ! command -v cargo > /dev/null; then - echo "Error: cargo not installed!" - exit 1 -fi - -if [ "$#" -ne 1 ]; then - echo "Error: expected the jsonproto file name as an argument!" - exit 1 -fi - -TEST_CASE_FILE="$1" - -if [ -z "$TEST_CASE_DIR" ]; then - TEST_CASE_DIR="$PWD/test-cases" -fi - -TEST_CASE_NAME=$(basename $TEST_CASE_FILE .jsonproto) - -cargo run \ - "$TEST_CASE_DIR/$TEST_CASE_NAME.jsonproto" \ - > "$TEST_CASE_DIR/$TEST_CASE_NAME.binproto" diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt new file mode 100644 index 00000000..1440ed17 --- /dev/null +++ b/src/main/kotlin/Main.kt @@ -0,0 +1,130 @@ +@file:Suppress("UNCHECKED_CAST") + +import com.squareup.wire.Message +import org.signal.libsignal.messagebackup.ComparableBackup +import org.signal.libsignal.messagebackup.MessageBackup +import tests.* +import java.io.ByteArrayOutputStream +import java.io.File +import java.io.OutputStream + +const val OUTPUT_DIR = "test-cases" + +val ALL_TEST_CASES = listOf( + StandardFramesTestCase, + AccountDataTestCase, + RecipientContactsTestCase, + RecipientGroupsTestCase, + RecipientDistributionListTestCase, + RecipientCallLinkTestCase, + StickerPackTestCase, + AdHocCallTestCase, + ChatTestCase, + ChatItemSimpleUpdatesTestCase, + ChatItemContactMessageTestCase, + ChatItemLearnedProfileUpdateTestCase, + ChatItemProfileChangeUpdateTestCase, + ChatItemSessionSwitchoverUpdateTestCase, + ChatItemThreadMergeUpdateTestCase, + ChatItemExpirationTimerUpdateTestCase, + ChatItemPaymentNotificationTestCase, +// ChatItemGiftBadgeTestCase, TODO figure out a way to generate valid presentations + ChatItemIndividualCallUpdateTestCase, + ChatItemGroupCallUpdateTestCase, + ChatItemStandardMessageTextOnlyTestCase, + ChatItemStandardMessageFormattedTextTestCase, + ChatItemStandardMessageStandardAttachmentsTestCase, + ChatItemStandardMessageSpecialAttachmentsTestCase, + ChatItemStandardMessageLongTextTestCase, + ChatItemStandardMessageWithEditsTestCase, + ChatItemStandardMessageWithQuoteTestCase, + ChatItemStickerMessageTestCase, + ChatItemRemoteDeleteTestCase +) + +fun main() { + val startTime = System.currentTimeMillis() + + println("Initializing...") + init() + runAllTests() + println("Complete! Took ${System.currentTimeMillis() - startTime} ms.") +} + +private fun init() { + File(OUTPUT_DIR).mkdir() + File(OUTPUT_DIR).listFiles { _, name -> name.endsWith(".txtproto") }?.forEach { it.delete() } + File(OUTPUT_DIR).listFiles { _, name -> name.endsWith(".binproto") }?.forEach { it.delete() } +} + +private fun runAllTests() { + ALL_TEST_CASES.forEach { test -> + runTest( + testName = test.baseFileName, + init = { + test.initialize() + with(test) { + execute() + } + } + ) + } +} + +private fun runTest(testName: String, init: PermutationScope.() -> Unit) { + println("Generating $testName...") + val snapshots = permute { init() } + + // We keep a separate index because we don't want to increment it if the snapshot produces invalid output + var index = 0 + + snapshots.forEach { snapshot -> + val binary = framesToBytes(snapshot) + + // Implicitly validates the backup. Throws exception on error. + ComparableBackup.readUnencrypted(MessageBackup.Purpose.REMOTE_BACKUP, binary.inputStream(), binary.size.toLong()) + + // For one-off tests with no permutations, it's nice to not have a trailing number + val baseFileName = if (snapshots.size == 1) { + testName + } else { + "${testName}_${index.minDigits(2)}" + } + + File("$OUTPUT_DIR/$baseFileName.binproto").writeBytes(binary) + + val json = snapshot.joinToString("\n\n") { it.prettyPrint() } + File("$OUTPUT_DIR/$baseFileName.txtproto").writeText(json.prefixWithWarningComment()) + + index++ + } +} + +private fun framesToBytes(frames: List>): ByteArray { + val output = ByteArrayOutputStream() + PlainTextBackupWriter(output).use { writer -> + frames.forEach { writer.write(it) } + } + return output.toByteArray() +} + +private fun String.prefixWithWarningComment(): String { + return "// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit!\n\n$this" +} + +private fun Int.minDigits(minDigits: Int): String { + return this.toString().padStart(minDigits, '0') +} + +private class PlainTextBackupWriter(private val outputStream: OutputStream) : AutoCloseable { + fun write(frame: Message<*, *>) { + val frameBytes: ByteArray = frame.encode() + + outputStream.writeVarInt32(frameBytes.size) + outputStream.write(frameBytes) + } + + override fun close() { + outputStream.close() + } +} diff --git a/src/main/kotlin/Permutations.kt b/src/main/kotlin/Permutations.kt new file mode 100644 index 00000000..213e8e0a --- /dev/null +++ b/src/main/kotlin/Permutations.kt @@ -0,0 +1,499 @@ +@file:Suppress("UNCHECKED_CAST") +@file:OptIn(ExperimentalStdlibApi::class) + +import com.squareup.wire.Message +import okio.ByteString.Companion.toByteString +import org.thoughtcrime.securesms.backup.v2.proto.* +import java.util.* +import kotlin.math.max + +/** + * Generates a list of snapshots, ensuring that a snapshot exists for each possible value of each individual generator. + * + * @param snapshotCount If set to a value > 0, it will generate exactly that many snapshots. Otherwise, it will generate + * the minimum number required to cover the minSizes of all registered generators. + */ +fun permute(snapshotCount: Int = -1, generateSnapshot: PermutationScope.() -> Unit): List>> { + val permutationScope = PermutationScope() + + val snapshots: MutableList>> = mutableListOf() + + if (snapshotCount > 0) { + repeat(snapshotCount) { + permutationScope.generateSnapshot() + snapshots += permutationScope.next() + } + } else { + while (permutationScope.hasNext()) { + permutationScope.generateSnapshot() + snapshots += permutationScope.next() + } + } + + return snapshots +} + +/** + * Like [permute], but assumes that each snapshot only has a single element, and returns a list of that element type. + */ +private fun permuteSingle(snapshotCount: Int = -1, init: PermutationScope.() -> Unit): List { + val snapshots = permute(snapshotCount) { init() } + return snapshots.map { + if (it.isEmpty()) throw IllegalStateException("No frames in snapshot! Did you forget to add to `frames`?") + it[0] as T + } +} + +/** + * Given a list of generators, returns a new list of generators that are null prefixed/suffixed to ensure that only + * one generator will output a value at any given time. This is to aid in generating permutations for oneof fields. + * + * Example: + * + * ```kotlin + * val (gen1, gen2) = oneOf(Generators.list("a", "b"), Generators.list("c", "d")) + * + * // The generators are now effectively: + * // gen1: ("a", "b", null, null) + * // gen2: (null, null, "c", "d") + * ``` + * + * When you destructure things like this, the typing can get a bit weird/annoying, so [someOneOf] was made to more + * easily force the correct typing. + * + * ```kotlin + * val (gen1, gen2) = oneOf(Generators.list("a", "b"), Generators.list("c", "d")) + * // ... + * frames += MyModel(myField = someOneOf(gen1)) + */ +fun oneOf(vararg generators: Generator): List> { + val sizes = generators.map { it.minSize } + val totalSize = sizes.sum() + val output: MutableList> = mutableListOf() + var prefixNullCount = 0 + + for (i in 0 until sizes.size) { + val prefixNulls = NullGenerator(prefixNullCount) + val suffixNulls = NullGenerator(totalSize - prefixNullCount - sizes[i]) + output.add(Generators.merge(prefixNulls, generators[i], suffixNulls)) + prefixNullCount += sizes[i] + } + + return output +} + +class PermutationScope : Iterator>> { + val frames: MutableList> = mutableListOf() + + private val registeredGenerators: MutableList> = mutableListOf() + + private var generatorIndex = 0 + private var snapshotIndex = 0 + private var targetSnapshotCount = 1 + + override fun hasNext(): Boolean { + return snapshotIndex < targetSnapshotCount + } + + override fun next(): List> { + generatorIndex = 0 + snapshotIndex++ + + return frames.toList().also { + frames.clear() + } + } + + fun somePermutation(init: PermutationScope.() -> Unit): T { + val snapshots = permuteSingle { init() } + return some(ListGenerator(snapshots)) + } + + fun someNullablePermutation(init: PermutationScope.() -> Unit): T? { + val snapshots = permuteSingle { init() } + return some(ListGenerator(snapshots).nullable()) + } + + fun someString(): String = some(Generators.strings()) + + fun someNonEmptyString(): String = some(Generators.nonEmptyStrings()) + + fun someNullableString(): String? = some(Generators.strings().nullable()) + + fun someEmoji(): String = some(Generators.emoji()) + + fun someBoolean(): Boolean = some(Generators.booleans()) + + fun someNullableBoolean(): Boolean? = some(Generators.booleans().nullable()) + + fun someInt(lower: Int = Int.MIN_VALUE, upper: Int = Int.MAX_VALUE): Int = some(Generators.ints(lower, upper)) + + fun someNullableInt(): Int? = some(Generators.ints().nullable()) + + fun somePositiveInt(): Int = some(Generators.ints(0)) + + fun somePositiveLong(): Long = some(Generators.longs(0)) + + fun someFloat(lower: Float = Float.MIN_VALUE, upper: Float = Float.MAX_VALUE): Float = some(Generators.floats(lower, upper)) + + fun someBytes(size: Int): ByteArray = some(Generators.bytes(size)) + + fun someNullableBytes(size: Int): ByteArray? = some(Generators.bytes(size).nullable()) + + fun someUrl(): String = some(Generators.urls()) + + fun someTimestamp(): Long = some(Generators.timestamps()) + + fun someNonZeroTimestamp(): Long = some(Generators.nonZeroTimestamps()) + + fun someIncrementingTimestamp(): Long = some(Generators.incrementingTimestamps()) + + fun someDecrementingTimestamp(lower: Long = 1659383695000, upper: Long = 1911844456000): Long = some(Generators.decrementingTimestamps(lower, upper)) + + fun someE164(): Long = some(Generators.e164s()) + + fun someUuid(): UUID = some(Generators.uuids()) + + fun someColor(): Int = some(Generators.colors()) + + fun someNullableUsername(): String? = some(Generators.usernames().nullable()) + + fun someEnum(clazz: Class, excluding: T? = null): T = excluding?.let { some(Generators.enum(clazz, excluding)) } ?: some(Generators.enum(clazz)) + fun someEnum(clazz: Class, vararg excluding: T): T = some(Generators.enum(clazz, *excluding)) + + fun someNullableEnum(clazz: Class): T? = some(Generators.enum(clazz).nullable()) + + fun someNullableFilePointer(): FilePointer? = some(Generators.filePointer().nullable()) + + fun some(generator: Generator): T { + if (snapshotIndex == 0) { + registeredGenerators.add(generator) + targetSnapshotCount = max(targetSnapshotCount, generator.minSize) + } + + return registeredGenerators[generatorIndex++].next() as T + } + + fun someOneOf(generator: Generator): T? = some(generator as Generator) +} + +fun Generator.nullable(): Generator { + return Generators.merge(NullGenerator(1), this as Generator) +} + +fun Generator.asList(vararg sizes: Int): Generator> { + val target = this + + return object : Generator> { + private var sizeIndex = 0 + + override val minSize: Int = sizes.size + override fun next(): List = (0 until sizes[sizeIndex]).map { target.next() }.also { sizeIndex = (sizeIndex + 1) % sizes.size } + } +} + +fun Generator.map(transform: (T) -> R): Generator { + val target = this + return object : Generator { + override val minSize: Int = target.minSize + override fun next(): R = transform(target.next()) + } +} + +fun T.asGenerator(): Generator { + return Generators.single(this) +} + +/** + * A generator is a class that generates an infinite sequence of values of type [T]. + * + * While it should always produce a value, the generator specifies a [minSize], indicating the minimum number of values + * it should generate before being considered "complete". + */ +interface Generator { + val minSize: Int + fun next(): T +} + +private class ListGenerator(val list: List) : Generator { + private var index = 0 + + override val minSize: Int = list.size + override fun next(): T = list[index++ % list.size] +} + +private class NullGenerator(override val minSize: Int) : Generator { + override fun next(): T? = null +} + +private class UuidGenerator : Generator { + override val minSize: Int = 1 + override fun next(): UUID = SeededRandom.uuid() +} + +private class ByteGenerator(private val numBytes: Int, override val minSize: Int = 1) : Generator { + override fun next(): ByteArray = SeededRandom.bytes(numBytes) +} + +private class IncrementingTimestampGenerator : Generator { + private var onDeck = SeededRandom.long(lower = 1659383695000, upper = 1911844456000) + + override val minSize: Int = 2 + override fun next(): Long = onDeck.also { onDeck += 1 } +} + +private class DecrementingTimestampGenerator(lower: Long, upper: Long) : Generator { + private var onDeck = SeededRandom.long(lower = lower, upper = upper) + + override val minSize: Int = 2 + override fun next(): Long = onDeck.also { onDeck -= 1 } +} + +object Generators { + fun strings(): Generator = Generators.list("", SeededRandom.string(), SeededRandom.string()) + fun nonEmptyStrings(): Generator = Generators.list(SeededRandom.string(), SeededRandom.string()) + fun emoji(): Generator = Generators.list("\uD83D\uDC80", "👍", "👎") + fun usernames(): Generator = Generators.list("${SeededRandom.string()}.${SeededRandom.int(10, 100)}", "${SeededRandom.string()}.${SeededRandom.int(10, 100)}") + fun booleans(): Generator = Generators.list(true, false) + fun ints(lower: Int = Int.MIN_VALUE, upper: Int = Int.MAX_VALUE): Generator = Generators.list(SeededRandom.int(lower, upper), SeededRandom.int(lower, upper), SeededRandom.int(lower, upper)) + fun longs(lower: Long = Long.MIN_VALUE, upper: Long = Long.MAX_VALUE): Generator = Generators.list(0L, SeededRandom.long(lower, upper), SeededRandom.long(lower, upper)) + fun nonZeroLongs(lower: Long = Long.MIN_VALUE, upper: Long = Long.MAX_VALUE): Generator = Generators.list(SeededRandom.long(lower, upper), SeededRandom.long(lower, upper), SeededRandom.long(lower, upper)) + fun floats(lower: Float = Float.MIN_VALUE, upper: Float = Float.MAX_VALUE): Generator = Generators.list(0f, SeededRandom.float(lower, upper), SeededRandom.float(lower, upper)) + fun bytes(numBytes: Int, minSize: Int = 1): Generator = ByteGenerator(numBytes, minSize) + fun enum(clazz: Class, excluding: T? = null): Generator = ListGenerator(clazz.enumConstants.filterNot { it == excluding }.toList()) + fun enum(clazz: Class, vararg excluding: T): Generator = ListGenerator(clazz.enumConstants.filterNot { excluding.contains(it) }.toList()) + fun urls(): Generator = Generators.list("", "https://example.com/" + SeededRandom.string(), "https://example.com/" + SeededRandom.string()) + fun timestamps(): Generator = Generators.list(0L, SeededRandom.long(lower = 1659383695000, upper = 1911844456000), SeededRandom.long(lower = 1659383695000, upper = 1911844456000)) + fun nonZeroTimestamps(): Generator = Generators.list(SeededRandom.long(lower = 1659383695000, upper = 1911844456000), SeededRandom.long(lower = 1659383695000, upper = 1911844456000)) + fun incrementingTimestamps(): Generator = IncrementingTimestampGenerator() + fun decrementingTimestamps(lower: Long = 1659383695000, upper: Long = 1911844456000): Generator = DecrementingTimestampGenerator(lower, upper) + fun e164s(): Generator = Generators.list(seededRandomE164(), seededRandomE164()) + fun uuids(): Generator = UuidGenerator() + fun cdnNumbers(): Generator = Generators.list(0, 2, 3) + fun emails(): Generator = Generators.list("${SeededRandom.string()}@${SeededRandom.string()}.com", "${SeededRandom.string()}@${SeededRandom.string()}.org") + fun blurHashes(): Generator = Generators.list("LfLh6Voa9NIW?wNF-ooL-;WAX8oy", "LGG*f,-i.l-o?G\$~?Zt7pHN1=tE3", "LdIOX?NE9Y4T~pRPRjE1X9f5jrt6", "LJR,66e.~Cxu%LoLM|S2%3WWIosm", "LIM:}RB8?-^L.d4]O.nkK_ruI?od") + fun contentTypes(): Generator = Generators.list("image/jpeg", "image/png", "image/gif", "audio/mp3", "video/mp4") + fun picoMobs(): Generator = Generators.list(SeededRandom.string(18, 25, "123456789"), SeededRandom.string(18, 25, "123456789")) + fun colors(): Generator = Generators.list(seededRandomColor(), seededRandomColor(), seededRandomColor()) + + fun list(vararg items: T): Generator = ListGenerator(items.toList()) + fun list(items: List): Generator = ListGenerator(items) + fun single(item: T): Generator = Generators.list(item) + + fun permutation(snapshotCount: Int = -1, init: PermutationScope.() -> Unit): Generator { + val snapshots = permuteSingle { init() } + return ListGenerator(snapshots) + } + + fun merge(vararg generators: Generator): Generator { + val allItems: List = mutableListOf().apply { + generators.forEach { generator -> + repeat(generator.minSize) { + add(generator.next()) + } + } + } + + return ListGenerator(allItems) + } + + fun filePointer(contentTypeGenerator: Generator = Generators.contentTypes()): Generator { + val (backupLocatorGenerator, attachmentLocatorGenerator, invalidAttachmentLocatorGenerator) = oneOf( + Generators.permutation { + val transitCdnKey = some(Generators.nonEmptyStrings().nullable()) + val transitCdnNumber = some(Generators.cdnNumbers().nullable()) + val digest = someBytes(16) + + frames += FilePointer.BackupLocator( + mediaName = digest.toHexString(), + cdnNumber = some(Generators.cdnNumbers()), + key = someBytes(16).toByteString(), + digest = digest.toByteString(), + size = somePositiveInt(), + transitCdnNumber = if (transitCdnKey != null) { + transitCdnNumber + } else { + null + }, + transitCdnKey = transitCdnKey + ) + }, + Generators.permutation { + frames += FilePointer.AttachmentLocator( + cdnKey = someNonEmptyString(), + cdnNumber = some(Generators.cdnNumbers()), + uploadTimestamp = someTimestamp(), + key = someBytes(16).toByteString(), + digest = someBytes(16).toByteString(), + size = somePositiveInt() + ) + }, + Generators.single(FilePointer.InvalidAttachmentLocator()) + ) + + return Generators.permutation { + val incrementalMac: ByteArray? = some(Generators.bytes(16).nullable()) + val incrementalMacChunkSize: Int? = some(Generators.list(1024, 2048)) + + val contentType = some(contentTypeGenerator) + val blurHash = some(Generators.blurHashes().nullable()) + + frames += FilePointer( + backupLocator = someOneOf(backupLocatorGenerator), + attachmentLocator = someOneOf(attachmentLocatorGenerator), + invalidAttachmentLocator = someOneOf(invalidAttachmentLocatorGenerator), + contentType = contentType, + incrementalMac = incrementalMac?.toByteString(), + incrementalMacChunkSize = if (incrementalMac != null) { + incrementalMacChunkSize + } else { + null + }, + fileName = some(Generators.nonEmptyStrings().nullable()), + width = some(Generators.ints(0, 4096).nullable()), + height = some(Generators.ints(0, 4096).nullable()), + caption = someNullableString(), + blurHash = if (contentType.startsWith("audio")) null else blurHash + ) + } + } + + fun sendStatus(recipientIdGenerator: Generator): Generator { + val ( + pendingGenerator, + sentGenerator, + deliveredGenerator, + readGenerator, + viewedGenerator, + skippedGenerator, + failedGenerator + ) = oneOf( + Generators.list(SendStatus.Pending()), + Generators.permutation { + frames += SendStatus.Sent( + sealedSender = someBoolean() + ) + }, + Generators.permutation { + frames += SendStatus.Delivered( + sealedSender = someBoolean() + ) + }, + Generators.permutation { + frames += SendStatus.Read( + sealedSender = someBoolean() + ) + }, + Generators.permutation { + frames += SendStatus.Viewed( + sealedSender = someBoolean() + ) + }, + Generators.list(SendStatus.Skipped()), + Generators.permutation { + frames += SendStatus.Failed( + reason = someEnum(SendStatus.Failed.FailureReason::class.java) + ) + } + ) + + return Generators.permutation { + frames += SendStatus( + recipientId = some(recipientIdGenerator), + timestamp = someTimestamp(), + pending = someOneOf(pendingGenerator), + sent = someOneOf(sentGenerator), + delivered = someOneOf(deliveredGenerator), + read = someOneOf(readGenerator), + viewed = someOneOf(viewedGenerator), + skipped = someOneOf(skippedGenerator), + failed = someOneOf(failedGenerator) + ) + } + } + + /** + * Generates a pair of generators that can be used for setting incoming/outgoing message details. + * For outgoing statuses, one will be made for each of the outgoing recipients. + */ + fun incomingOutgoingDetails(vararg outgoingRecipients: Recipient): Pair, Generator> { + val sendStatusGenerators = outgoingRecipients.map { outgoingRecipient -> + Generators.sendStatus( + recipientIdGenerator = Generators.single(outgoingRecipient.id) + ) + } + + val (incoming, outgoing) = oneOf( + Generators.permutation { + frames += ChatItem.IncomingMessageDetails( + dateReceived = someIncrementingTimestamp(), + dateServerSent = someIncrementingTimestamp(), + read = someBoolean(), + sealedSender = someBoolean() + ) + }, + Generators.permutation { + frames += ChatItem.OutgoingMessageDetails( + sendStatus = sendStatusGenerators.map { some(it) } + ) + } + ) + + return incoming as Generator to outgoing as Generator + } + + fun reactions(maxReactions: Int, vararg authors: Recipient): Generator> { + return Generators.permutation { + frames += Reaction( + emoji = someEmoji(), + authorId = some(Generators.list(*authors.map { it.id }.toTypedArray())), + sentTimestamp = someIncrementingTimestamp(), + sortOrder = some( + Generators.merge( + Generators.list(1, 2), + Generators.timestamps() + ) + ) + ) + }.asList(*(0..maxReactions).toList().toIntArray()) + } + + /** + * Returns a generator that generates a list of T. The size of the lists it outputs will be determined by [sizes]. + * It will use a fresh generator for each list, generated by [generatorFactory]. + * + * Note that this is different from [Generator.asList], which does _not_ reset the generator for each list, instead + * using the same generator throughout. + */ + fun lists(sizes: List, generatorFactory: () -> Generator): Generator> { + return object : Generator> { + var sizeIndex = 0 + + override val minSize: Int = sizes.size + + override fun next(): List { + val generator = generatorFactory() + return (0 until sizes[sizeIndex]) + .map { generator.next() } + .also { sizeIndex = (sizeIndex + 1) % sizes.size } + } + } + } + + /** Generates a random e164 in the protected test number range */ + private fun seededRandomE164(): Long { + return when (SeededRandom.int(0, 3)) { + 0 -> "1${SeededRandom.int(100, 1000)}55501${SeededRandom.int(10, 100)}" + 1 -> "447700900${SeededRandom.int(100, 1000)}" + 2 -> "3363998${SeededRandom.int(1000, 10_000)}" + else -> throw AssertionError("Unreachable") + }.toLong() + } + + private fun seededRandomColor(): Int { + return ("FF" + SeededRandom.string(from = 6, until = 7, characterSet = "0123456789ABCDEF")).hexToInt() + } +} + +private operator fun List.component6(): T = this[5] +private operator fun List.component7(): T = this[6] diff --git a/src/main/kotlin/SeededRandom.kt b/src/main/kotlin/SeededRandom.kt new file mode 100644 index 00000000..443c3c14 --- /dev/null +++ b/src/main/kotlin/SeededRandom.kt @@ -0,0 +1,39 @@ +import java.util.* +import kotlin.random.Random + +object SeededRandom { + + private var random = Random(0) + + fun reset(seed: Long = 0) { + random = Random(seed) + } + + fun uuid(): UUID { + return UUID(random.nextLong(), random.nextLong()) + } + + fun bytes(length: Int): ByteArray { + return ByteArray(length).also { random.nextBytes(it) } + } + + fun string(from: Int = 5, until: Int = 15, characterSet: String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"): String { + val length = random.nextInt(from, until) + return (1..length) + .map { characterSet.random(random) } + .joinToString("") + } + + fun long(lower: Long = Long.MIN_VALUE, upper: Long = Long.MAX_VALUE): Long { + return random.nextLong(lower, upper) + } + + fun int(lower: Int = Int.MIN_VALUE, upper: Int = Int.MAX_VALUE): Int { + return random.nextInt(lower, upper) + } + + fun float(lower: Float = Float.MIN_VALUE, upper: Float = Float.MAX_VALUE): Float { + val diff = upper - lower + return lower + (random.nextFloat() * diff) + } +} diff --git a/src/main/kotlin/StandardFrames.kt b/src/main/kotlin/StandardFrames.kt new file mode 100644 index 00000000..6f6920c5 --- /dev/null +++ b/src/main/kotlin/StandardFrames.kt @@ -0,0 +1,274 @@ +@file:OptIn(ExperimentalStdlibApi::class) + +import okio.ByteString.Companion.toByteString +import org.thoughtcrime.securesms.backup.v2.proto.* +import java.util.* + +/** + * Defines a set of standard frames that can be used in various tests. + * Helpful when you need an arbitrary recipient, chat, etc. + */ +object StandardFrames { + private val MY_STORY_UUID: UUID = UUID.fromString("00000000-0000-0000-0000-000000000000") + val SELF_PROFILE_KEY: ByteArray = base64Decode("YQKRq+3DQklInaOaMcmlzZnN0m/1hzLiaONX7gB12dg=") + + val SELF_ACI: ByteArray = UUID(100, 100).toByteArray() + val SELF_PNI: ByteArray = UUID(101, 101).toByteArray() + + val backupInfo = BackupInfo( + version = 1, + backupTimeMs = 1715636551000 + ) + + val recipientSelf = Frame( + recipient = Recipient( + id = 1, + self = Self() + ) + ) + + val recipientReleaseNotes = Frame( + recipient = Recipient( + id = 2, + releaseNotes = ReleaseNotes() + ) + ) + + val recipientMyStory = Frame( + recipient = Recipient( + id = 3, + distributionList = DistributionListItem( + distributionId = MY_STORY_UUID.toByteArray().toByteString(), + distributionList = DistributionList( + name = "My Story", + privacyMode = DistributionList.PrivacyMode.ALL + ) + ) + ) + ) + + val accountData = Frame( + account = AccountData( + profileKey = SELF_PROFILE_KEY.toByteString(), + username = "boba_fett.66", + usernameLink = AccountData.UsernameLink( + entropy = base64Decode("ZWdcc9AOsBAF47t8SkfylstlVPeJgSOIFekV2CT9LpM=").toByteString(), + serverId = base64Decode("YcEBogDVQheJwgUY2El68A==").toByteString(), + color = AccountData.UsernameLink.Color.OLIVE + ), + givenName = "Boba", + familyName = "Fett", + avatarUrlPath = "", + donationSubscriberData = AccountData.SubscriberData( + subscriberId = base64Decode("7LtoxzQzGi6jM82nR8mMRVNlImFYK0/OWuDeqE3OZRk=").toByteString(), + currencyCode = "USD", + manuallyCancelled = true + ), + // TODO +// backupsSubscriberData = AccountData.SubscriberData( +// subscriberId = base64Decode("7LtoxzQzGi6jM82nR8mMRVNlImFYK0/OWuDeqE3OZRk=").toByteString(), +// currencyCode = "USD", +// manuallyCancelled = false +// ), + accountSettings = AccountData.AccountSettings( + readReceipts = true, + sealedSenderIndicators = true, + typingIndicators = true, + linkPreviews = true, + notDiscoverableByPhoneNumber = true, + preferContactAvatars = true, + universalExpireTimerSeconds = 3600, + preferredReactionEmoji = listOf("a", "b", "c"), + displayBadgesOnProfile = true, + keepMutedChatsArchived = true, + hasSetMyStoriesPrivacy = true, + hasViewedOnboardingStory = true, + storiesDisabled = true, + storyViewReceiptsEnabled = true, + hasSeenGroupStoryEducationSheet = true, + hasCompletedUsernameOnboarding = true, + phoneNumberSharingMode = AccountData.PhoneNumberSharingMode.NOBODY, + customChatColors = listOf( + ChatStyle.CustomChatColor( + id = 1, + solid = "FF000000".hexToInt() + ), + ChatStyle.CustomChatColor( + id = 2, + solid = "FFFF0000".hexToInt() + ), + ChatStyle.CustomChatColor( + id = 3, + solid = "FF00FF00".hexToInt() + ) + ) + ) + ) + ) + + val MANDATORY_FRAMES = listOf( + backupInfo, + accountData, + recipientSelf, + recipientReleaseNotes, + recipientMyStory + ) + + val chatSelf = Frame( + chat = Chat( + id = 1, + recipientId = recipientSelf.recipient!!.id + ) + ) + + val recipientAlice = Frame( + recipient = Recipient( + id = 4, + contact = Contact( + aci = UUID(0, 1).toByteArray().toByteString(), + pni = UUID(0, 2).toByteArray().toByteString(), + e164 = 16105550101, + profileGivenName = "Alice", + profileFamilyName = "Smith", + registered = Contact.Registered(), + profileKey = base64Decode("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=").toByteString() + ) + ) + ) + + val recipientBob = Frame( + recipient = Recipient( + id = 5, + contact = Contact( + aci = UUID(0, 3).toByteArray().toByteString(), + pni = UUID(0, 4).toByteArray().toByteString(), + e164 = 16105550102, + profileGivenName = "Bob", + profileFamilyName = "Jones", + registered = Contact.Registered(), + profileKey = base64Decode("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=").toByteString() + ) + ) + ) + + val recipientCarol = Frame( + recipient = Recipient( + id = 6, + contact = Contact( + aci = UUID(0, 5).toByteArray().toByteString(), + pni = UUID(0, 6).toByteArray().toByteString(), + e164 = 16105550103, + profileGivenName = "Carol", + profileFamilyName = "Johnson", + registered = Contact.Registered(), + profileKey = base64Decode("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC=").toByteString() + ) + ) + ) + + val recipientDan = Frame( + recipient = Recipient( + id = 7, + contact = Contact( + aci = UUID(0, 7).toByteArray().toByteString(), + pni = UUID(0, 8).toByteArray().toByteString(), + e164 = 16105550104, + profileGivenName = "Dan", + profileFamilyName = "Brown", + registered = Contact.Registered(), + profileKey = base64Decode("DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD=").toByteString() + ) + ) + ) + + val recipientEve = Frame( + recipient = Recipient( + id = 8, + contact = Contact( + aci = UUID(0, 9).toByteArray().toByteString(), + pni = UUID(0, 10).toByteArray().toByteString(), + e164 = 16105550105, + profileGivenName = "Eve", + profileFamilyName = "Green", + registered = Contact.Registered(), + profileKey = base64Decode("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE=").toByteString() + ) + ) + ) + + val recipientFrank = Frame( + recipient = Recipient( + id = 9, + contact = Contact( + aci = UUID(0, 11).toByteArray().toByteString(), + pni = UUID(0, 12).toByteArray().toByteString(), + e164 = 16105550106, + profileGivenName = "Frank", + profileFamilyName = "Johnson", + registered = Contact.Registered(), + profileKey = base64Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF=").toByteString() + ) + ) + ) + + /** A group with you, Alice, and Bob */ + val recipientGroupAB = Frame( + recipient = Recipient( + id = 10, + group = Group( + masterKey = ByteArray(32) { 0 }.toByteString(), + whitelisted = true, + snapshot = Group.GroupSnapshot( + title = Group.GroupAttributeBlob( + title = "Me, Alice, Bob" + ), + avatarUrl = "https://example.com/avatar.jpg", + version = 1, + members = listOf( + Group.Member( + userId = SELF_ACI.toByteString(), + role = Group.Member.Role.ADMINISTRATOR, + profileKey = recipientAlice.recipient!!.contact!!.profileKey!! + ), + Group.Member( + userId = recipientAlice.recipient!!.contact!!.aci!!, + role = Group.Member.Role.DEFAULT, + profileKey = recipientAlice.recipient!!.contact!!.profileKey!! + ), + Group.Member( + userId = recipientBob.recipient!!.contact!!.aci!!, + role = Group.Member.Role.DEFAULT, + profileKey = recipientBob.recipient!!.contact!!.profileKey!! + ) + ) + ) + ) + ) + ) + + val recipientCallLink = Frame( + recipient = Recipient( + callLink = CallLink( + rootKey = ByteArray(16) { 0 }.toByteString(), + adminKey = ByteArray(32) { 1 }.toByteString(), + name = "Test Call Link", + restrictions = CallLink.Restrictions.NONE, + expirationMs = 0 + ) + ) + ) + + val chatAlice = Frame( + chat = Chat( + id = 2, + recipientId = recipientAlice.recipient!!.id + ) + ) + + val chatGroupAB = Frame( + chat = Chat( + id = 3, + recipientId = recipientGroupAB.recipient!!.id + ) + ) +} diff --git a/src/main/kotlin/TestCase.kt b/src/main/kotlin/TestCase.kt new file mode 100644 index 00000000..2b8fc9fd --- /dev/null +++ b/src/main/kotlin/TestCase.kt @@ -0,0 +1,17 @@ +/** + * Base class for a test case. Each test should strive to test a specific "category" of backup items. + * + * Note that tests should be deterministic. All the prebuilt generators are already deterministic, using a seeded + * random generator. If you need your own random values outside the context of a generator, be sure to use [SeededRandom]. + * + * @param baseFileName The root of the file name that will be used for test output. If the value is "foo", the output + * will be "foo_00.binproto", "foo_01.binproto", etc. + */ +abstract class TestCase(val baseFileName: String) { + + fun initialize() { + SeededRandom.reset() + } + + abstract fun PermutationScope.execute() +} diff --git a/src/main/kotlin/Util.kt b/src/main/kotlin/Util.kt new file mode 100644 index 00000000..de79c07b --- /dev/null +++ b/src/main/kotlin/Util.kt @@ -0,0 +1,97 @@ +import okio.ByteString +import java.io.OutputStream +import java.nio.ByteBuffer +import java.util.Base64 +import java.util.UUID +import kotlin.reflect.full.declaredMemberProperties + +/** + * Writes a 32-bit variable-length integer to the stream. + * + * The format uses one byte for each 7 bits of the integer, with the most significant bit (MSB) of each byte indicating whether more bytes need to be read. + */ +fun OutputStream.writeVarInt32(value: Int) { + var remaining = value + + while (true) { + // We write 7 bits of the integer at a time + val lowestSevenBits = remaining and 0x7F + remaining = remaining ushr 7 + + if (remaining == 0) { + // If there are no more bits to write, we're done + write(lowestSevenBits) + return + } else { + // Otherwise, we need to write the next 7 bits, and set the MSB to 1 to indicate that there are more bits to come + write(lowestSevenBits or 0x80) + } + } +} + +fun UUID.toByteArray(): ByteArray { + val buffer: ByteBuffer = ByteBuffer.wrap(ByteArray(16)) + buffer.putLong(this.mostSignificantBits) + buffer.putLong(this.leastSignificantBits) + + return buffer.array() +} + +fun base64Decode(value: String): ByteArray { + return Base64.getDecoder().decode(value) +} + +/** + * Takes a class and converts it to a nice, multi-line string with good indentation. Optimized for readability. + */ +@OptIn(ExperimentalStdlibApi::class) +fun Any?.prettyPrint(indent: String = ""): String { + when (this) { + null -> return "${indent}null" + is Int, + is Long, + is Float, + is Double, + is Boolean -> return "${indent}$this" + is String -> return "${indent}\"$this\"" + is ByteArray -> return "<${this.toHexString(HexFormat.Default)}>" + is ByteString -> return "<${this.toByteArray().toHexString(HexFormat.Default)}>" + is Enum<*> -> return "${indent}${this::class.simpleName}.${this.name}" + } + + val clazz = this!!::class + val fields = clazz.declaredMemberProperties + + if (fields.isEmpty()) { + return "${indent}${clazz.simpleName} {}" + } + + val fieldsString = clazz.declaredMemberProperties + .filter { + when (val value = it.getter.call(this)) { + is List<*> -> value.isNotEmpty() + is Boolean -> value != false + is Long -> value != 0L + is Int -> value != 0 + else -> value != null + } + } + .joinToString(separator = "\n") { field -> + when (val value = field.getter.call(this)) { + is List<*> -> { + if (value.isEmpty()) { + "$indent ${field.name} = []" + } else { + "$indent ${field.name} = [\n${value.joinToString(separator = ",\n") { it.prettyPrint(indent = "$indent ") }}\n$indent ]" + } + } + else -> { + "$indent ${field.name} = ${value.prettyPrint(indent = "$indent ")}" + } + } + } + + return "$indent${clazz.simpleName} {\n$fieldsString\n$indent}" + .replace(Regex("=\\s+"), "= ") + .replace(Regex("\\{\\s+}", RegexOption.MULTILINE), "{}") +} diff --git a/src/main/kotlin/tests/AccountDataTestCase.kt b/src/main/kotlin/tests/AccountDataTestCase.kt new file mode 100644 index 00000000..17d7e6b9 --- /dev/null +++ b/src/main/kotlin/tests/AccountDataTestCase.kt @@ -0,0 +1,126 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generator +import Generators +import PermutationScope +import TestCase +import nullable +import okio.ByteString.Companion.toByteString +import oneOf +import org.thoughtcrime.securesms.backup.v2.proto.AccountData +import org.thoughtcrime.securesms.backup.v2.proto.ChatStyle +import org.thoughtcrime.securesms.backup.v2.proto.Frame + +/** + * Every reasonable permutation of AccountData. + */ +object AccountDataTestCase : TestCase("account_data") { + + override fun PermutationScope.execute() { + frames += StandardFrames.backupInfo + + val (wallpaperPhotoGenerator, wallpaperPresetGenerator) = oneOf( + Generators.filePointer() as Generator, + Generators.enum(ChatStyle.WallpaperPreset::class.java, excluding = ChatStyle.WallpaperPreset.UNKNOWN_WALLPAPER_PRESET) as Generator + ) + + val (bubbleAutoGenerator, bubblePresetGenerator, bubbleCustomGenerator) = oneOf( + Generators.list(ChatStyle.AutomaticBubbleColor()), + Generators.enum(ChatStyle.BubbleColorPreset::class.java, excluding = ChatStyle.BubbleColorPreset.UNKNOWN_BUBBLE_COLOR_PRESET) as Generator, + Generators.list(1L, 2L, 3L) as Generator + ) + + val usernameLinkGenerator: Generator = Generators.permutation { + frames += AccountData.UsernameLink( + entropy = someBytes(32).toByteString(), + serverId = someBytes(16).toByteString(), + color = someEnum(AccountData.UsernameLink.Color::class.java, excluding = AccountData.UsernameLink.Color.UNKNOWN) + ) + }.nullable() + + val usernameLink = some(usernameLinkGenerator) + val username = some(Generators.usernames()) + + frames += Frame( + account = AccountData( + profileKey = someBytes(32).toByteString(), + username = if (usernameLink != null) { + username + } else { + null + }, + usernameLink = usernameLink, + givenName = someString(), + familyName = someString(), + avatarUrlPath = someUrl(), + donationSubscriberData = someNullablePermutation { + frames += AccountData.SubscriberData( + subscriberId = someBytes(32).toByteString(), + currencyCode = some(Generators.list("USD", "EUR", "GBP")), + manuallyCancelled = someBoolean() + ) + }, + backupsSubscriberData = someNullablePermutation { + frames += AccountData.SubscriberData( + subscriberId = someBytes(32).toByteString(), + currencyCode = some(Generators.list("USD", "EUR", "GBP")), + manuallyCancelled = someBoolean() + ) + }, + accountSettings = AccountData.AccountSettings( + readReceipts = someBoolean(), + sealedSenderIndicators = someBoolean(), + typingIndicators = someBoolean(), + linkPreviews = someBoolean(), + notDiscoverableByPhoneNumber = someBoolean(), + preferContactAvatars = someBoolean(), + universalExpireTimerSeconds = somePositiveInt(), + preferredReactionEmoji = listOf(), + displayBadgesOnProfile = someBoolean(), + keepMutedChatsArchived = someBoolean(), + hasSetMyStoriesPrivacy = someBoolean(), + hasViewedOnboardingStory = someBoolean(), + storiesDisabled = someBoolean(), + storyViewReceiptsEnabled = someBoolean(), + hasSeenGroupStoryEducationSheet = someBoolean(), + hasCompletedUsernameOnboarding = someBoolean(), + phoneNumberSharingMode = someEnum(AccountData.PhoneNumberSharingMode::class.java, excluding = AccountData.PhoneNumberSharingMode.UNKNOWN), + defaultChatStyle = someNullablePermutation { + frames += ChatStyle( + wallpaperPreset = someOneOf(wallpaperPresetGenerator), + wallpaperPhoto = someOneOf(wallpaperPhotoGenerator), + autoBubbleColor = someOneOf(bubbleAutoGenerator), + bubbleColorPreset = someOneOf(bubblePresetGenerator), + customColorId = someOneOf(bubbleCustomGenerator), + dimWallpaperInDarkMode = someBoolean() + ) + }, + customChatColors = listOf( + ChatStyle.CustomChatColor( + id = 1, + solid = someColor() + ), + ChatStyle.CustomChatColor( + id = 2, + solid = someColor() + ), + ChatStyle.CustomChatColor( + id = 3, + gradient = ChatStyle.Gradient( + angle = someInt(0, 360), + colors = listOf(someColor(), someColor()), + positions = listOf(0f, 1f) + ) + ) + ) + ) + ) + ) + + frames += StandardFrames.recipientSelf + frames += StandardFrames.recipientReleaseNotes + frames += StandardFrames.recipientMyStory + } +} diff --git a/src/main/kotlin/tests/AdHocCallTestCase.kt b/src/main/kotlin/tests/AdHocCallTestCase.kt new file mode 100644 index 00000000..c1faf9a2 --- /dev/null +++ b/src/main/kotlin/tests/AdHocCallTestCase.kt @@ -0,0 +1,30 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generators +import PermutationScope +import StandardFrames +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.AdHocCall +import org.thoughtcrime.securesms.backup.v2.proto.Frame + +/** + * Reasonable permutations of [AdHocCall] objects. + */ +object AdHocCallTestCase : TestCase("ad_hoc_call") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientCallLink + + frames += Frame( + adHocCall = AdHocCall( + callId = some(Generators.nonZeroLongs(1, Long.MAX_VALUE)), + recipientId = StandardFrames.recipientCallLink.recipient!!.id, + state = someEnum(AdHocCall.State::class.java, excluding = AdHocCall.State.UNKNOWN_STATE), + callTimestamp = someTimestamp() + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemContactMessageTestCase.kt b/src/main/kotlin/tests/ChatItemContactMessageTestCase.kt new file mode 100644 index 00000000..7e931006 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemContactMessageTestCase.kt @@ -0,0 +1,108 @@ +package tests + +import PermutationScope +import TestCase +import asList +import oneOf +import org.thoughtcrime.securesms.backup.v2.proto.ChatItem +import org.thoughtcrime.securesms.backup.v2.proto.ContactAttachment +import org.thoughtcrime.securesms.backup.v2.proto.ContactMessage +import org.thoughtcrime.securesms.backup.v2.proto.Frame + +/** + * Every reasonable permutation of ChatItem.ContactMessage + */ +object ChatItemContactMessageTestCase : TestCase("chat_item_contact_message") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val sendStatusGenerator = Generators.sendStatus( + recipientIdGenerator = Generators.single(StandardFrames.recipientAlice.recipient!!.id) + ) + + val (incomingGenerator, outgoingGenerator) = oneOf( + Generators.permutation { + frames += ChatItem.IncomingMessageDetails( + dateReceived = someIncrementingTimestamp(), + dateServerSent = someIncrementingTimestamp(), + read = someBoolean(), + sealedSender = someBoolean() + ) + }, + Generators.permutation { + frames += ChatItem.OutgoingMessageDetails( + sendStatus = listOf(some(sendStatusGenerator)) + ) + } + ) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someTimestamp(), + incoming = incoming as ChatItem.IncomingMessageDetails?, + outgoing = outgoing as ChatItem.OutgoingMessageDetails?, + contactMessage = ContactMessage( + contact = Generators.permutation { + frames += ContactAttachment( + name = ContactAttachment.Name( + givenName = someNonEmptyString(), + familyName = someNonEmptyString() + ), + number = Generators.permutation { + frames += ContactAttachment.Phone( + value_ = someE164().toString(), + type = someEnum( + ContactAttachment.Phone.Type::class.java, + excluding = ContactAttachment.Phone.Type.UNKNOWN + ), + label = someNullableString() + ) + }.asList(0, 1, 2).let { some(it) }, + email = Generators.permutation { + frames += ContactAttachment.Email( + value_ = some(Generators.emails()), + type = someEnum( + ContactAttachment.Email.Type::class.java, + excluding = ContactAttachment.Email.Type.UNKNOWN + ), + label = someNullableString() + ) + }.asList(0, 1, 2).let { some(it) }, + address = Generators.permutation { + frames += ContactAttachment.PostalAddress( + type = someEnum( + ContactAttachment.PostalAddress.Type::class.java, + excluding = ContactAttachment.PostalAddress.Type.UNKNOWN + ), + label = someNullableString(), + street = someNonEmptyString(), + pobox = someNullableString(), + neighborhood = someNullableString(), + city = someNonEmptyString(), + region = someNullableString(), + postcode = someNullableString(), + country = someNullableString() + ) + }.asList(0, 1, 2).let { some(it) }, + organization = someNullableString(), + avatar = someNullableFilePointer() + ) + }.asList(1, 2).let { some(it) } + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemExpirationTimerUpdateTestCase.kt b/src/main/kotlin/tests/ChatItemExpirationTimerUpdateTestCase.kt new file mode 100644 index 00000000..9e76c38e --- /dev/null +++ b/src/main/kotlin/tests/ChatItemExpirationTimerUpdateTestCase.kt @@ -0,0 +1,35 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generators +import PermutationScope +import StandardFrames +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Permutations of [ExpirationTimerChatUpdate] messages. + */ +object ChatItemExpirationTimerUpdateTestCase : TestCase("chat_item_expiration_timer_update") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = some(Generators.list(StandardFrames.recipientSelf.recipient!!.id, StandardFrames.recipientAlice.recipient!!.id)), + dateSent = someTimestamp(), + directionless = ChatItem.DirectionlessMessageDetails(), + updateMessage = ChatUpdateMessage( + expirationTimerChange = ExpirationTimerChatUpdate( + expiresInMs = somePositiveLong() + ) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemGiftBadgeTestCase.kt b/src/main/kotlin/tests/ChatItemGiftBadgeTestCase.kt new file mode 100644 index 00000000..ffdc8d16 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemGiftBadgeTestCase.kt @@ -0,0 +1,43 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import PermutationScope +import TestCase +import okio.ByteString.Companion.toByteString +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Incoming/outgoing gift badges + */ +object ChatItemGiftBadgeTestCase : TestCase("chat_item_gift_badge") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val (incomingGenerator, outgoingGenerator) = Generators.incomingOutgoingDetails(StandardFrames.recipientAlice.recipient!!) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someIncrementingTimestamp(), + incoming = incoming, + outgoing = outgoing, + giftBadge = GiftBadge( + receiptCredentialPresentation = someBytes(32).toByteString(), + state = someEnum(GiftBadge.State::class.java) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemGroupCallUpdateTestCase.kt b/src/main/kotlin/tests/ChatItemGroupCallUpdateTestCase.kt new file mode 100644 index 00000000..1122be15 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemGroupCallUpdateTestCase.kt @@ -0,0 +1,66 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generators +import PermutationScope +import StandardFrames +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Individual call updates + */ +object ChatItemGroupCallUpdateTestCase : TestCase("chat_item_group_call_update") { + private val ENDED_STATES = setOf( + GroupCall.State.DECLINED, + GroupCall.State.MISSED, + GroupCall.State.MISSED_NOTIFICATION_PROFILE + ) + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.recipientBob + frames += StandardFrames.recipientGroupAB + frames += StandardFrames.chatGroupAB + + val ringerGenerator = Generators.list( + StandardFrames.recipientAlice.recipient!!.id, + StandardFrames.recipientBob.recipient!!.id + ) + + val startedCallGenerator = Generators.list( + StandardFrames.recipientSelf.recipient!!.id, + StandardFrames.recipientAlice.recipient!!.id, + StandardFrames.recipientBob.recipient!!.id + ) + + val callState = someEnum(GroupCall.State::class.java, excluding = GroupCall.State.UNKNOWN_STATE) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatGroupAB.chat!!.id, + authorId = StandardFrames.recipientSelf.recipient!!.id, + directionless = ChatItem.DirectionlessMessageDetails(), + dateSent = someIncrementingTimestamp(), + updateMessage = ChatUpdateMessage( + groupCall = GroupCall( + callId = somePositiveLong(), + state = callState, + ringerRecipientId = some(ringerGenerator), + startedCallRecipientId = some(startedCallGenerator), + startedCallTimestamp = someNonZeroTimestamp(), + endedCallTimestamp = if (callState in ENDED_STATES) { + 100L + } else { + 0L + }, + read = someBoolean() + ) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemIndividualCallUpdateTestCase.kt b/src/main/kotlin/tests/ChatItemIndividualCallUpdateTestCase.kt new file mode 100644 index 00000000..f24532d0 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemIndividualCallUpdateTestCase.kt @@ -0,0 +1,38 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import PermutationScope +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Individual call updates + */ +object ChatItemIndividualCallUpdateTestCase : TestCase("chat_item_individual_call_update") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = StandardFrames.recipientSelf.recipient!!.id, + directionless = ChatItem.DirectionlessMessageDetails(), + dateSent = someIncrementingTimestamp(), + updateMessage = ChatUpdateMessage( + individualCall = IndividualCall( + callId = somePositiveLong(), + type = someEnum(IndividualCall.Type::class.java, excluding = IndividualCall.Type.UNKNOWN_TYPE), + direction = someEnum(IndividualCall.Direction::class.java, excluding = IndividualCall.Direction.UNKNOWN_DIRECTION), + state = someEnum(IndividualCall.State::class.java, excluding = IndividualCall.State.UNKNOWN_STATE), + startedCallTimestamp = someNonZeroTimestamp(), + read = someBoolean() + ) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemLearnedProfileUpdateTestCase.kt b/src/main/kotlin/tests/ChatItemLearnedProfileUpdateTestCase.kt new file mode 100644 index 00000000..6ba49857 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemLearnedProfileUpdateTestCase.kt @@ -0,0 +1,46 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generator +import Generators +import PermutationScope +import StandardFrames +import TestCase +import oneOf +import org.thoughtcrime.securesms.backup.v2.proto.ChatItem +import org.thoughtcrime.securesms.backup.v2.proto.ChatUpdateMessage +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.LearnedProfileChatUpdate + +/** + * Permutations of the [LearnedProfileChatUpdate] message. + */ +object ChatItemLearnedProfileUpdateTestCase : TestCase("chat_item_learned_profile_update") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val (e164Generator, usernameGenerator) = oneOf( + Generators.e164s() as Generator, + Generators.usernames() as Generator + ) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = StandardFrames.recipientSelf.recipient!!.id, + dateSent = someIncrementingTimestamp(), + directionless = ChatItem.DirectionlessMessageDetails(), + updateMessage = ChatUpdateMessage( + learnedProfileChange = LearnedProfileChatUpdate( + e164 = someOneOf(e164Generator), + username = someOneOf(usernameGenerator) + ) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemPaymentNotificationTestCase.kt b/src/main/kotlin/tests/ChatItemPaymentNotificationTestCase.kt new file mode 100644 index 00000000..54b0ab31 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemPaymentNotificationTestCase.kt @@ -0,0 +1,75 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generators +import PermutationScope +import TestCase +import okio.ByteString.Companion.toByteString +import oneOf +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Incoming/outgoing payment update messages. + */ +object ChatItemPaymentNotificationTestCase : TestCase("chat_item_payment_notification") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val (incomingGenerator, outgoingGenerator) = Generators.incomingOutgoingDetails(StandardFrames.recipientAlice.recipient!!) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + val (transactionGenerator, failedTransactionGenerator) = oneOf( + Generators.permutation { + val publicKey = listOf(some(Generators.bytes(32)).toByteString()) + val keyImages = listOf(some(Generators.bytes(32)).toByteString()) + + frames += PaymentNotification.TransactionDetails.Transaction( + status = someEnum(PaymentNotification.TransactionDetails.Transaction.Status::class.java), + mobileCoinIdentification = PaymentNotification.TransactionDetails.MobileCoinTxoIdentification( + publicKey = publicKey.takeIf { incoming != null } ?: emptyList(), + keyImages = keyImages.takeIf { outgoing != null } ?: emptyList() + ), + timestamp = someIncrementingTimestamp(), + blockIndex = somePositiveLong(), + blockTimestamp = someTimestamp(), + transaction = someBytes(32).toByteString(), + receipt = someBytes(32).toByteString() + ) + }, + Generators.permutation { + frames += PaymentNotification.TransactionDetails.FailedTransaction( + reason = someEnum(PaymentNotification.TransactionDetails.FailedTransaction.FailureReason::class.java) + ) + } + ) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someIncrementingTimestamp(), + incoming = incoming, + outgoing = outgoing, + paymentNotification = PaymentNotification( + amountMob = some(Generators.picoMobs()), + feeMob = some(Generators.picoMobs()), + note = someNullableString(), + transactionDetails = PaymentNotification.TransactionDetails( + transaction = someOneOf(transactionGenerator), + failedTransaction = someOneOf(failedTransactionGenerator) + ) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemProfileChangeUpdateTestCase.kt b/src/main/kotlin/tests/ChatItemProfileChangeUpdateTestCase.kt new file mode 100644 index 00000000..aab3732a --- /dev/null +++ b/src/main/kotlin/tests/ChatItemProfileChangeUpdateTestCase.kt @@ -0,0 +1,35 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import PermutationScope +import StandardFrames +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Permutations of the [ProfileChangeChatUpdate] message. + */ +object ChatItemProfileChangeUpdateTestCase : TestCase("chat_item_profile_change_update") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = StandardFrames.recipientAlice.recipient!!.id, + dateSent = someTimestamp(), + directionless = ChatItem.DirectionlessMessageDetails(), + updateMessage = ChatUpdateMessage( + profileChange = ProfileChangeChatUpdate( + previousName = someNonEmptyString(), + newName = someNonEmptyString() + ) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemRemoteDeleteTestCase.kt b/src/main/kotlin/tests/ChatItemRemoteDeleteTestCase.kt new file mode 100644 index 00000000..01240b7d --- /dev/null +++ b/src/main/kotlin/tests/ChatItemRemoteDeleteTestCase.kt @@ -0,0 +1,39 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import PermutationScope +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Incoming/outgoing remote deleted messages. + */ +object ChatItemRemoteDeleteTestCase : TestCase("chat_item_remote_delete") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val (incomingGenerator, outgoingGenerator) = Generators.incomingOutgoingDetails(StandardFrames.recipientAlice.recipient!!) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someIncrementingTimestamp(), + incoming = incoming, + outgoing = outgoing, + remoteDeletedMessage = RemoteDeletedMessage() + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemSessionSwitchoverUpdateTestCase.kt b/src/main/kotlin/tests/ChatItemSessionSwitchoverUpdateTestCase.kt new file mode 100644 index 00000000..aa1730b9 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemSessionSwitchoverUpdateTestCase.kt @@ -0,0 +1,34 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import PermutationScope +import StandardFrames +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Permutations of the [SessionSwitchoverChatUpdate] message. + */ +object ChatItemSessionSwitchoverUpdateTestCase : TestCase("chat_item_session_switchover_update") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = StandardFrames.recipientAlice.recipient!!.id, + dateSent = someTimestamp(), + directionless = ChatItem.DirectionlessMessageDetails(), + updateMessage = ChatUpdateMessage( + sessionSwitchover = SessionSwitchoverChatUpdate( + e164 = someE164() + ) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemSimpleUpdatesTestCase.kt b/src/main/kotlin/tests/ChatItemSimpleUpdatesTestCase.kt new file mode 100644 index 00000000..9378364a --- /dev/null +++ b/src/main/kotlin/tests/ChatItemSimpleUpdatesTestCase.kt @@ -0,0 +1,35 @@ +package tests + +import PermutationScope +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.ChatItem +import org.thoughtcrime.securesms.backup.v2.proto.ChatUpdateMessage +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.SimpleChatUpdate + +/** + * All simple chat updates. + */ +object ChatItemSimpleUpdatesTestCase : TestCase("chat_item_simple_updates") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = StandardFrames.recipientAlice.recipient!!.id, + dateSent = someTimestamp(), + directionless = ChatItem.DirectionlessMessageDetails(), + updateMessage = ChatUpdateMessage( + simpleUpdate = SimpleChatUpdate( + type = someEnum(SimpleChatUpdate.Type::class.java, excluding = SimpleChatUpdate.Type.UNKNOWN) + ) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemStandardMessageFormattedTextTestCase.kt b/src/main/kotlin/tests/ChatItemStandardMessageFormattedTextTestCase.kt new file mode 100644 index 00000000..51091134 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemStandardMessageFormattedTextTestCase.kt @@ -0,0 +1,69 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generator +import Generators +import PermutationScope +import TestCase +import asList +import oneOf +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Incoming/outgoing text-only messages with formatted text. Excludes mentions. + */ +object ChatItemStandardMessageFormattedTextTestCase : TestCase("chat_item_standard_message_formatted_text") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.recipientBob + frames += StandardFrames.recipientGroupAB + frames += StandardFrames.chatGroupAB + + val (incomingGenerator, outgoingGenerator) = Generators.incomingOutgoingDetails( + StandardFrames.recipientAlice.recipient!!, + StandardFrames.recipientBob.recipient!! + ) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + val (mentionGenerator, styleGenerator) = oneOf( + Generators.list( + StandardFrames.recipientAlice.recipient.contact!!.aci, + StandardFrames.recipientBob.recipient.contact!!.aci + ), + Generators.enum(BodyRange.Style::class.java) as Generator + ) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatGroupAB.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someIncrementingTimestamp(), + incoming = incoming, + outgoing = outgoing, + standardMessage = StandardMessage( + text = Text( + body = "0123456789", + bodyRanges = Generators.permutation { + frames += BodyRange( + start = some(Generators.list(0, 0, 0, 1, 2, 3)), + length = some(Generators.list(1, 5, 10, 5, 7, 3)), + style = someOneOf(styleGenerator), + mentionAci = someOneOf(mentionGenerator) + ) + }.asList(0, 1, 2, 3, 4, 5).let { some(it) } + ) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemStandardMessageLongTextTestCase.kt b/src/main/kotlin/tests/ChatItemStandardMessageLongTextTestCase.kt new file mode 100644 index 00000000..74df2cba --- /dev/null +++ b/src/main/kotlin/tests/ChatItemStandardMessageLongTextTestCase.kt @@ -0,0 +1,47 @@ +package tests + +import PermutationScope +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.ChatItem +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.StandardMessage +import org.thoughtcrime.securesms.backup.v2.proto.Text + +/** + * Incoming/outgoing messages with long text. + */ +object ChatItemStandardMessageLongTextTestCase : TestCase("chat_item_standard_message_long_text") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val (incomingGenerator, outgoingGenerator) = Generators.incomingOutgoingDetails(StandardFrames.recipientAlice.recipient!!) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someIncrementingTimestamp(), + incoming = incoming, + outgoing = outgoing, + standardMessage = StandardMessage( + text = Text( + body = someString() + ), + longText = someNullableFilePointer(), + reactions = some(Generators.reactions(2, StandardFrames.recipientSelf.recipient!!, StandardFrames.recipientAlice.recipient)) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemStandardMessageSpecialAttachmentsTestCase.kt b/src/main/kotlin/tests/ChatItemStandardMessageSpecialAttachmentsTestCase.kt new file mode 100644 index 00000000..c10d26c2 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemStandardMessageSpecialAttachmentsTestCase.kt @@ -0,0 +1,63 @@ +package tests + +import PermutationScope +import TestCase +import asList +import org.thoughtcrime.securesms.backup.v2.proto.ChatItem +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.MessageAttachment +import org.thoughtcrime.securesms.backup.v2.proto.StandardMessage + +/** + * Incoming/outgoing messages with special attachments (i.e. voice note, borderless). + */ +object ChatItemStandardMessageSpecialAttachmentsTestCase : TestCase("chat_item_standard_message_special_attachments") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val (incomingGenerator, outgoingGenerator) = Generators.incomingOutgoingDetails(StandardFrames.recipientAlice.recipient!!) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someIncrementingTimestamp(), + incoming = incoming, + outgoing = outgoing, + standardMessage = StandardMessage( + quote = null, + attachments = Generators.permutation { + val flag = some(Generators.list(MessageAttachment.Flag.VOICE_MESSAGE, MessageAttachment.Flag.BORDERLESS, MessageAttachment.Flag.GIF)) + val pointer = some(Generators.filePointer()) + + frames += MessageAttachment( + flag = flag, + pointer = if (flag == MessageAttachment.Flag.VOICE_MESSAGE) { + pointer.copy(contentType = "audio/mp3", blurHash = null) + } else if (flag == MessageAttachment.Flag.GIF) { + pointer.copy(contentType = "video/mp4") + } else if (flag == MessageAttachment.Flag.BORDERLESS) { + pointer.copy(contentType = "image/png") + } else { + pointer + }, + wasDownloaded = someBoolean() + ) + }.asList(1).let { some(it) }, + reactions = some(Generators.reactions(2, StandardFrames.recipientSelf.recipient!!, StandardFrames.recipientAlice.recipient)) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemStandardMessageStandardAttachmentsTestCase.kt b/src/main/kotlin/tests/ChatItemStandardMessageStandardAttachmentsTestCase.kt new file mode 100644 index 00000000..0ed8c334 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemStandardMessageStandardAttachmentsTestCase.kt @@ -0,0 +1,54 @@ +package tests + +import PermutationScope +import TestCase +import asList +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Incoming/outgoing messages with standard attachments (i.e. no flags, meaning no voice notes, etc.). + */ +object ChatItemStandardMessageStandardAttachmentsTestCase : TestCase("chat_item_standard_message_standard_attachments") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val (incomingGenerator, outgoingGenerator) = Generators.incomingOutgoingDetails(StandardFrames.recipientAlice.recipient!!) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someIncrementingTimestamp(), + incoming = incoming, + outgoing = outgoing, + standardMessage = StandardMessage( + quote = null, + text = someNullablePermutation { + frames += Text( + body = someString() + ) + }, + attachments = Generators.permutation { + frames += MessageAttachment( + pointer = some(Generators.filePointer()), + flag = MessageAttachment.Flag.NONE, + wasDownloaded = someBoolean() + ) + }.asList(1, 3, 5).let { some(it) }, + reactions = some(Generators.reactions(2, StandardFrames.recipientSelf.recipient!!, StandardFrames.recipientAlice.recipient)) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemStandardMessageTextOnlyTestCase.kt b/src/main/kotlin/tests/ChatItemStandardMessageTextOnlyTestCase.kt new file mode 100644 index 00000000..f2173681 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemStandardMessageTextOnlyTestCase.kt @@ -0,0 +1,46 @@ +package tests + +import PermutationScope +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.ChatItem +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.StandardMessage +import org.thoughtcrime.securesms.backup.v2.proto.Text + +/** + * Incoming/outgoing text-only messages. + */ +object ChatItemStandardMessageTextOnlyTestCase : TestCase("chat_item_standard_message_text_only") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val (incomingGenerator, outgoingGenerator) = Generators.incomingOutgoingDetails(StandardFrames.recipientAlice.recipient!!) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someIncrementingTimestamp(), + incoming = incoming, + outgoing = outgoing, + standardMessage = StandardMessage( + text = Text( + body = someString() + ), + reactions = some(Generators.reactions(2, StandardFrames.recipientSelf.recipient!!, StandardFrames.recipientAlice.recipient)) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemStandardMessageWithEditsTestCase.kt b/src/main/kotlin/tests/ChatItemStandardMessageWithEditsTestCase.kt new file mode 100644 index 00000000..b7a5f4b9 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemStandardMessageWithEditsTestCase.kt @@ -0,0 +1,73 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generators +import PermutationScope +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.ChatItem +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.StandardMessage +import org.thoughtcrime.securesms.backup.v2.proto.Text + +/** + * Permutations of a standard message with edits/revisions. + */ +object ChatItemStandardMessageWithEditsTestCase : TestCase("chat_item_standard_message_with_edits") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val originalMessageDateSent = someNonZeroTimestamp() + + val revisionGenerator = Generators.lists(listOf(1, 3)) { + Generators.permutation(snapshotCount = 4) { + val dateSent = someDecrementingTimestamp( + lower = originalMessageDateSent - 100_000, + upper = originalMessageDateSent - 1 + ) + + frames += ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = StandardFrames.recipientAlice.recipient!!.id, + dateSent = dateSent, + incoming = ChatItem.IncomingMessageDetails( + dateReceived = dateSent - 10, + dateServerSent = dateSent - 1, + read = someBoolean(), + sealedSender = someBoolean() + ), + standardMessage = StandardMessage( + text = Text( + body = someString() + ) + ) + ) + } + } + + val revisions = some(revisionGenerator) + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = StandardFrames.recipientAlice.recipient!!.id, + dateSent = originalMessageDateSent, + incoming = ChatItem.IncomingMessageDetails( + dateReceived = originalMessageDateSent - 10, + dateServerSent = originalMessageDateSent - 1, + read = someBoolean(), + sealedSender = someBoolean() + ), + standardMessage = StandardMessage( + text = Text( + body = someString() + ) + ), + revisions = revisions + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemStandardMessageWithQuoteTestCase.kt b/src/main/kotlin/tests/ChatItemStandardMessageWithQuoteTestCase.kt new file mode 100644 index 00000000..cb0b5f4b --- /dev/null +++ b/src/main/kotlin/tests/ChatItemStandardMessageWithQuoteTestCase.kt @@ -0,0 +1,110 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generators +import PermutationScope +import StandardFrames +import TestCase +import asGenerator +import okio.ByteString.Companion.toByteString +import oneOf +import org.thoughtcrime.securesms.backup.v2.proto.* + +/** + * Incoming/outgoing messages that quote other messages. We try to cover quoting every type of message here. + */ +object ChatItemStandardMessageWithQuoteTestCase : TestCase("chat_item_standard_message_with_quote") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val (incomingGenerator, outgoingGenerator) = Generators.incomingOutgoingDetails(StandardFrames.recipientAlice.recipient!!) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + // TODO more message types! + + val ( + standardMessageGenerator, + contactMessageGenerator, + stickerMessageGenerator + ) = oneOf( + StandardMessage( + text = Text(body = "asdf") + ).asGenerator(), + ContactMessage( + contact = listOf(ContactAttachment(name = ContactAttachment.Name(givenName = "Peter", familyName = "Parker"))) + ).asGenerator(), + StickerMessage( + sticker = Sticker( + packId = ByteArray(16) { 0 }.toByteString(), + packKey = ByteArray(32) { 1 }.toByteString(), + emoji = "👍", + data_ = FilePointer(invalidAttachmentLocator = FilePointer.InvalidAttachmentLocator()) + ) + ).asGenerator() + ) + + val targetDateSent = 1L + + val targetMessage = Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = StandardFrames.recipientAlice.recipient.id, + dateSent = targetDateSent, + incoming = ChatItem.IncomingMessageDetails( + dateReceived = targetDateSent, + dateServerSent = targetDateSent, + read = true + ), + standardMessage = someOneOf(standardMessageGenerator), + contactMessage = someOneOf(contactMessageGenerator), + stickerMessage = someOneOf(stickerMessageGenerator) + ) + ) + + frames += targetMessage + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someIncrementingTimestamp(), + incoming = incoming, + outgoing = outgoing, + standardMessage = StandardMessage( + text = Text( + body = someString() + ), + quote = Quote( + targetSentTimestamp = targetDateSent, + authorId = StandardFrames.recipientAlice.recipient.id, + text = if (targetMessage.chatItem?.standardMessage?.text?.body != null) { + Text( + body = targetMessage.chatItem.standardMessage.text.body, + bodyRanges = if (targetMessage.chatItem?.standardMessage?.text?.bodyRanges != null) { + targetMessage.chatItem.standardMessage.text.bodyRanges + } else { + emptyList() + } + ) + } else { + null + }, + type = Quote.Type.NORMAL + ), + reactions = some(Generators.reactions(2, StandardFrames.recipientSelf.recipient!!, StandardFrames.recipientAlice.recipient)) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemStickerMessageTestCase.kt b/src/main/kotlin/tests/ChatItemStickerMessageTestCase.kt new file mode 100644 index 00000000..975bb2ac --- /dev/null +++ b/src/main/kotlin/tests/ChatItemStickerMessageTestCase.kt @@ -0,0 +1,56 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generators +import PermutationScope +import StandardFrames +import TestCase +import okio.ByteString.Companion.toByteString +import org.thoughtcrime.securesms.backup.v2.proto.ChatItem +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.Sticker +import org.thoughtcrime.securesms.backup.v2.proto.StickerMessage + +/** + * Incoming/outgoing sticker messages. + */ +object ChatItemStickerMessageTestCase : TestCase("chat_item_sticker_message") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + val (incomingGenerator, outgoingGenerator) = Generators.incomingOutgoingDetails(StandardFrames.recipientAlice.recipient!!) + + val incoming = some(incomingGenerator) + val outgoing = some(outgoingGenerator) + + val contentTypeGenerator = Generators.list("image/png", "image/apng", "image/webp") + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = if (outgoing != null) { + StandardFrames.recipientSelf.recipient!!.id + } else { + StandardFrames.recipientAlice.recipient!!.id + }, + dateSent = someIncrementingTimestamp(), + incoming = incoming, + outgoing = outgoing, + stickerMessage = StickerMessage( + sticker = Sticker( + packId = someBytes(16).toByteString(), + packKey = someBytes(32).toByteString(), + stickerId = someInt(1, 32), + emoji = someEmoji(), + data_ = some(Generators.filePointer(contentTypeGenerator)) + ), + reactions = some(Generators.reactions(2, StandardFrames.recipientSelf.recipient!!, StandardFrames.recipientAlice.recipient!!)) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatItemThreadMergeUpdateTestCase.kt b/src/main/kotlin/tests/ChatItemThreadMergeUpdateTestCase.kt new file mode 100644 index 00000000..a4e0fcf4 --- /dev/null +++ b/src/main/kotlin/tests/ChatItemThreadMergeUpdateTestCase.kt @@ -0,0 +1,30 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import PermutationScope +import TestCase +import org.thoughtcrime.securesms.backup.v2.proto.* + +object ChatItemThreadMergeUpdateTestCase : TestCase("chat_item_thread_merge_update") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.chatAlice + + frames += Frame( + chatItem = ChatItem( + chatId = StandardFrames.chatAlice.chat!!.id, + authorId = StandardFrames.recipientAlice.recipient!!.id, + dateSent = someTimestamp(), + directionless = ChatItem.DirectionlessMessageDetails(), + updateMessage = ChatUpdateMessage( + threadMerge = ThreadMergeChatUpdate( + previousE164 = someE164() + ) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/ChatTestCase.kt b/src/main/kotlin/tests/ChatTestCase.kt new file mode 100644 index 00000000..6fccc99e --- /dev/null +++ b/src/main/kotlin/tests/ChatTestCase.kt @@ -0,0 +1,57 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generator +import PermutationScope +import StandardFrames +import TestCase +import oneOf +import org.thoughtcrime.securesms.backup.v2.proto.Chat +import org.thoughtcrime.securesms.backup.v2.proto.ChatStyle +import org.thoughtcrime.securesms.backup.v2.proto.Frame + +/** + * Every reasonable permutation of chats + */ +object ChatTestCase : TestCase("chat") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + + val (wallpaperPhotoGenerator, wallpaperPresetGenerator) = oneOf( + Generators.filePointer() as Generator, + Generators.enum(ChatStyle.WallpaperPreset::class.java, ChatStyle.WallpaperPreset.UNKNOWN_WALLPAPER_PRESET) as Generator + ) + + val (bubbleAutoGenerator, bubblePresetGenerator, bubbleCustomGenerator) = oneOf( + Generators.list(ChatStyle.AutomaticBubbleColor()), + Generators.enum(ChatStyle.BubbleColorPreset::class.java, ChatStyle.BubbleColorPreset.UNKNOWN_BUBBLE_COLOR_PRESET) as Generator, + Generators.list(1L, 2L, 3L) + ) + + frames += Frame( + chat = Chat( + id = 3, + recipientId = StandardFrames.chatAlice.chat!!.id, + archived = someBoolean(), + pinnedOrder = some(Generators.list(listOf(0, 1))), + expirationTimerMs = somePositiveLong(), + muteUntilMs = somePositiveLong(), + markedUnread = someBoolean(), + dontNotifyForMentionsIfMuted = someBoolean(), + style = somePermutation { + frames += ChatStyle( + wallpaperPreset = someOneOf(wallpaperPresetGenerator), + wallpaperPhoto = someOneOf(wallpaperPhotoGenerator), + autoBubbleColor = someOneOf(bubbleAutoGenerator), + bubbleColorPreset = someOneOf(bubblePresetGenerator), + customColorId = someOneOf(bubbleCustomGenerator), + dimWallpaperInDarkMode = someBoolean() + ) + } + ) + ) + } +} diff --git a/src/main/kotlin/tests/RecipientCallLinkTestCase.kt b/src/main/kotlin/tests/RecipientCallLinkTestCase.kt new file mode 100644 index 00000000..781a32a4 --- /dev/null +++ b/src/main/kotlin/tests/RecipientCallLinkTestCase.kt @@ -0,0 +1,31 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import PermutationScope +import TestCase +import okio.ByteString.Companion.toByteString +import org.thoughtcrime.securesms.backup.v2.proto.CallLink +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.Recipient + +/** + * Reasonable permutations of [CallLink] recipients. + */ +object RecipientCallLinkTestCase : TestCase("recipient_call_link") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += Frame( + recipient = Recipient( + callLink = CallLink( + rootKey = someBytes(16).toByteString(), + adminKey = someNullableBytes(32)?.toByteString(), + name = someString(), + restrictions = someEnum(CallLink.Restrictions::class.java, excluding = CallLink.Restrictions.UNKNOWN), + expirationMs = somePositiveLong() + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/RecipientContactsTestCase.kt b/src/main/kotlin/tests/RecipientContactsTestCase.kt new file mode 100644 index 00000000..a3bc7de9 --- /dev/null +++ b/src/main/kotlin/tests/RecipientContactsTestCase.kt @@ -0,0 +1,50 @@ +package tests + +import PermutationScope +import TestCase +import okio.ByteString.Companion.toByteString +import oneOf +import org.thoughtcrime.securesms.backup.v2.proto.Contact +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.Recipient +import toByteArray + +/** + * Every reasonable permutation of Recipient.Contact + */ +object RecipientContactsTestCase : TestCase("recipient_contacts") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + val (registered, notRegistered) = oneOf( + Generators.list(Contact.Registered()), + Generators.permutation { + frames += Contact.NotRegistered( + unregisteredTimestamp = someTimestamp() + ) + } + ) + + frames += Frame( + recipient = Recipient( + id = 4, + contact = Contact( + aci = someUuid().toByteArray().toByteString(), + pni = someUuid().toByteArray().toByteString(), + username = someNullableUsername(), + e164 = someE164(), + blocked = someBoolean(), + visibility = someEnum(Contact.Visibility::class.java), + registered = someOneOf(registered), + notRegistered = someOneOf(notRegistered), + profileKey = someNullableBytes(32)?.toByteString(), + profileSharing = someBoolean(), + profileGivenName = someNullableString(), + profileFamilyName = someNullableString(), + hideStory = someBoolean() + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/RecipientDistributionListTestCase.kt b/src/main/kotlin/tests/RecipientDistributionListTestCase.kt new file mode 100644 index 00000000..07e1e368 --- /dev/null +++ b/src/main/kotlin/tests/RecipientDistributionListTestCase.kt @@ -0,0 +1,66 @@ +package tests + +import PermutationScope +import TestCase +import asList +import map +import okio.ByteString.Companion.toByteString +import oneOf +import org.thoughtcrime.securesms.backup.v2.proto.DistributionList +import org.thoughtcrime.securesms.backup.v2.proto.DistributionListItem +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.Recipient +import toByteArray + +/** + * Every reasonable permutation of Recipient.DistributionList + */ +object RecipientDistributionListTestCase : TestCase("recipient_distribution_list") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.recipientBob + frames += StandardFrames.recipientCarol + + val memberIds: List = listOf( + StandardFrames.recipientAlice, + StandardFrames.recipientBob, + StandardFrames.recipientCarol + ).map { it.recipient!!.id } + + val (deletionTimestampGenerator, distributionListGenerator) = oneOf( + Generators.single(someIncrementingTimestamp()), + Generators.permutation { + val privacyModeGenerator = Generators.enum(DistributionList.PrivacyMode::class.java, excluding = DistributionList.PrivacyMode.UNKNOWN) + val memberRecipientIdGenerator = Generators.list(memberIds).asList(0, 1, 2, 3) + + val privacyMode = some(privacyModeGenerator) + val memberRecipientIds = some(memberRecipientIdGenerator) + + frames += DistributionList( + name = someNonEmptyString(), + allowReplies = someBoolean(), + memberRecipientIds = if (privacyMode == DistributionList.PrivacyMode.ALL) { + emptyList() + } else { + memberRecipientIds + }, + privacyMode = privacyMode + ) + } + ) + + frames += Frame( + recipient = Recipient( + id = 7, + distributionList = DistributionListItem( + distributionId = someUuid().toByteArray().toByteString(), + deletionTimestamp = someOneOf(deletionTimestampGenerator), + distributionList = someOneOf(distributionListGenerator) + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/RecipientGroupsTestCase.kt b/src/main/kotlin/tests/RecipientGroupsTestCase.kt new file mode 100644 index 00000000..756758c8 --- /dev/null +++ b/src/main/kotlin/tests/RecipientGroupsTestCase.kt @@ -0,0 +1,105 @@ +package tests + +import Generator +import PermutationScope +import TestCase +import asList +import map +import okio.ByteString.Companion.toByteString +import org.thoughtcrime.securesms.backup.v2.proto.Contact +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.Group +import org.thoughtcrime.securesms.backup.v2.proto.Recipient + +/** + * Every reasonable permutation of Recipient.Group + */ +object RecipientGroupsTestCase : TestCase("recipient_groups") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += StandardFrames.recipientAlice + frames += StandardFrames.recipientBob + frames += StandardFrames.recipientCarol + frames += StandardFrames.recipientDan + frames += StandardFrames.recipientEve + frames += StandardFrames.recipientFrank + + frames += Frame( + recipient = Recipient( + id = 10, + group = Group( + masterKey = someBytes(32).toByteString(), + whitelisted = someBoolean(), + hideStory = someBoolean(), + storySendMode = someEnum(Group.StorySendMode::class.java), + snapshot = somePermutation { + frames += Group.GroupSnapshot( + title = Group.GroupAttributeBlob( + title = someNonEmptyString() + ), + description = someNullablePermutation { + frames += Group.GroupAttributeBlob( + descriptionText = someNonEmptyString() + ) + }, + avatarUrl = someUrl(), + disappearingMessagesTimer = somePermutation { + frames += Group.GroupAttributeBlob( + disappearingMessagesDuration = somePositiveInt() + ) + }, + accessControl = Group.AccessControl( + attributes = someEnum(Group.AccessControl.AccessRequired::class.java, Group.AccessControl.AccessRequired.UNKNOWN, Group.AccessControl.AccessRequired.ANY, Group.AccessControl.AccessRequired.UNSATISFIABLE), + members = someEnum(Group.AccessControl.AccessRequired::class.java, Group.AccessControl.AccessRequired.UNKNOWN, Group.AccessControl.AccessRequired.ANY, Group.AccessControl.AccessRequired.UNSATISFIABLE), + addFromInviteLink = someEnum(Group.AccessControl.AccessRequired::class.java, Group.AccessControl.AccessRequired.UNKNOWN, Group.AccessControl.AccessRequired.ANY, Group.AccessControl.AccessRequired.MEMBER) + ), + version = somePositiveInt(), + members = Generators.permutation { + val userGenerator: Generator = Generators.list(StandardFrames.recipientAlice.recipient!!.contact!!, StandardFrames.recipientBob.recipient!!.contact!!, StandardFrames.recipientCarol.recipient!!.contact!!) + val user = some(userGenerator) + frames += Group.Member( + userId = user.aci!!, + role = someEnum(Group.Member.Role::class.java, excluding = Group.Member.Role.UNKNOWN), + profileKey = user.profileKey!! + ) + }.asList(1, 2, 3).map { members -> + members + Group.Member( + userId = StandardFrames.SELF_ACI.toByteString(), + role = Group.Member.Role.DEFAULT, + profileKey = StandardFrames.SELF_PROFILE_KEY.toByteString() + ) + }.let { some(it) }, + membersPendingProfileKey = Generators.permutation { + frames += Group.MemberPendingProfileKey( + member = Group.Member( + userId = StandardFrames.recipientDan.recipient!!.contact!!.aci!!, + role = Group.Member.Role.DEFAULT + ), + addedByUserId = StandardFrames.recipientAlice.recipient!!.contact!!.aci!!, + timestamp = someIncrementingTimestamp() + ) + }.asList(0, 1).let { some(it) }, + membersPendingAdminApproval = Generators.permutation { + frames += Group.MemberPendingAdminApproval( + userId = StandardFrames.recipientEve.recipient!!.contact!!.aci!!, + profileKey = StandardFrames.recipientEve.recipient!!.contact!!.profileKey!!, + timestamp = someIncrementingTimestamp() + ) + }.asList(0, 1).let { some(it) }, + members_banned = Generators.permutation { + frames += Group.MemberBanned( + userId = StandardFrames.recipientFrank.recipient!!.contact!!.aci!!, + timestamp = someIncrementingTimestamp() + ) + }.asList(0, 1).let { some(it) }, + inviteLinkPassword = someBytes(32).toByteString(), + announcements_only = someBoolean() + ) + } + ) + ) + ) + } +} diff --git a/src/main/kotlin/tests/StandardFramesTestCase.kt b/src/main/kotlin/tests/StandardFramesTestCase.kt new file mode 100644 index 00000000..57363e4e --- /dev/null +++ b/src/main/kotlin/tests/StandardFramesTestCase.kt @@ -0,0 +1,14 @@ +package tests + +import PermutationScope +import TestCase + +/** + * The simplest possible test case, containing only the mandatory frames you need to have a valid backup. + */ +object StandardFramesTestCase : TestCase("standard_frames") { + + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + } +} diff --git a/src/main/kotlin/tests/StickerPackTestCase.kt b/src/main/kotlin/tests/StickerPackTestCase.kt new file mode 100644 index 00000000..02ae0553 --- /dev/null +++ b/src/main/kotlin/tests/StickerPackTestCase.kt @@ -0,0 +1,26 @@ +@file:Suppress("UNCHECKED_CAST") + +package tests + +import Generators +import PermutationScope +import TestCase +import okio.ByteString.Companion.toByteString +import org.thoughtcrime.securesms.backup.v2.proto.Frame +import org.thoughtcrime.securesms.backup.v2.proto.StickerPack + +/** + * Some sticker pack variations. + */ +object StickerPackTestCase : TestCase("sticker_pack") { + override fun PermutationScope.execute() { + frames += StandardFrames.MANDATORY_FRAMES + + frames += Frame( + stickerPack = StickerPack( + packId = some(Generators.bytes(numBytes = 16, minSize = 3)).toByteString(), + packKey = some(Generators.bytes(numBytes = 32, minSize = 3)).toByteString() + ) + ) + } +} diff --git a/Backup.proto b/src/main/proto/Backup.proto similarity index 99% rename from Backup.proto rename to src/main/proto/Backup.proto index a777f5f3..5f35ad11 100644 --- a/Backup.proto +++ b/src/main/proto/Backup.proto @@ -433,14 +433,14 @@ message PaymentNotification { Status status = 1; // This identification is used to map the payment table to the ledger - // and is likely required otherwise we may have issues reconciling with + // and is likely required otherwise we may have issues reconciling with // the ledger MobileCoinTxoIdentification mobileCoinIdentification = 2; optional uint64 timestamp = 3; optional uint64 blockIndex = 4; optional uint64 blockTimestamp = 5; - optional bytes transaction = 6; // mobile coin blobs - optional bytes receipt = 7; // mobile coin blobs + optional bytes transaction = 6; // mobile coin blobs + optional bytes receipt = 7; // mobile coin blobs } oneof payment { @@ -448,12 +448,12 @@ message PaymentNotification { FailedTransaction failedTransaction = 2; } } - + optional string amountMob = 1; // stored as a decimal string, e.g. 1.00001 optional string feeMob = 2; // stored as a decimal string, e.g. 1.00001 optional string note = 3; TransactionDetails transactionDetails = 4; - + } message GiftBadge { @@ -612,7 +612,7 @@ message FilePointer { } // References attachments that are invalid in such a way where download - // cannot be attempted. Could range from missing digests to missing + // cannot be attempted. Could range from missing digests to missing // CDN keys or anything else that makes download attempts impossible. // This serves as a 'tombstone' so that the UX can show that an attachment // did exist, but for whatever reason it's not retrievable. @@ -1150,4 +1150,4 @@ message ChatStyle { } bool dimWallpaperInDarkMode = 7; -} +} \ No newline at end of file diff --git a/test-cases/account-data.binproto b/test-cases/account-data.binproto deleted file mode 100644 index 8bca63e4972c7c07f8fa723033e3e1889c1e8f44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmd<&U=+CVYr*{QhUXZ$PBU^TBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3(J0=v+n#Mh!*-MvDnDPV67%_xHWu(eJ?+ zz!<@pz?i{Uz*xc9z{uFa$iybZ!ojG;0HTd5*eO0$RaPTVAntP2pb&o#H z@d^j3XOv)6VANnVV6-v4fFu79%?cqv(O-um6Ks zOro5gH-RiE4rVDa4r?Kf_(;M3#eqBjOK~uOL4!S;5DN#R76XW4GGb5@QsH1$Qs5GR VNFzuo9xe{wN`>H({Gv(;W&m<=G4B8X literal 0 HcmV?d00001 diff --git a/test-cases/account_data_00.txtproto b/test-cases/account_data_00.txtproto new file mode 100644 index 00000000..78d4ee95 --- /dev/null +++ b/test-cases/account_data_00.txtproto @@ -0,0 +1,84 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -1325120 + }, + CustomChatColor { + id = 2 + solid = -2537207 + }, + CustomChatColor { + gradient = Gradient { + angle = 59 + colors = [ + -15640225, + -4632205 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 1083889414 + } + avatarUrlPath = "" + familyName = "" + givenName = "" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_01.binproto b/test-cases/account_data_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3d1e606776264540ef64eb394f1cafb92ac5e78d GIT binary patch literal 474 zcmd<&U=+CVYr*{QhBKMDrZICV%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q)fyp@J;L+~x+o_u-UHJW%`P^6c#pxyAw@z8Qbo=e_FpYX4 zfnwSFyVCuRecpA@|80j+%RC82B_21YGGA}^5Z`1^pIj|Yub{~CQYY6;ZzGwEl9GaA zD}DXcip1Q4oK(H!{9JwCpggA}@6voLO)iD|lP^7*Ch}ZFiVMZ{ACp4sGW7;KVN(3 ye<= + key = <3bd72e515007f15a21064b374c7c7f19> + mediaName = "5c0c5f7b97527985b715cd4f8972f428" + size = 1000441712 + } + contentType = "image/jpeg" + } + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 456011350 + } + avatarUrlPath = "https://example.com/MRnBbKuo" + backupsSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "JRYwuBEiK" + givenName = "FBvMKGTMcILm" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.BLUE + entropy = <023354c1c58b8bdb65b292d0fbfd03cef547a36774f7b594a5a5b7db5756287f> + serverId = <731ddfba674ec6f3bac14fed8832849e> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_02.binproto b/test-cases/account_data_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b55fe842638b55311564b2624c38b65317e9c30d GIT binary patch literal 579 zcmd<&U=+CVYr*{QhD|J7|CzZIW-i!Zq2l9v?{el&(c8yvUiSK`Zg=3|Ri-uf8g=R( zeVQZ05tW|qov&wMA!Wv;z@QNK;-T-=Yxku;tW%eJJ2!>zuJy%-%g!H<5Q>^&uA?R- z;Ie(`+xoXkn?7sq$T}_T#v#F^#8c+y;aZgHNYX zdb02I?|pI_kGqAKT|#J9$6#{0f7GQZYMp+jW!lYqnd-a70bboSw7` ztkA2M3Fv=D2}T7*4Mqb-i(S7~Ut;xO3}B34Okm7lEMTl)Y+z*UU}T)cxQS6{Eu#`= zW^Q77s(wLUx|YBOwVv1&=`Xf~lsZRVF|M*PXb`aCNXsq>cZ|x*aoEo0u}~_AAxg$4 z%_qYwEI-lG&okV<+|NxnKi@~!I@~eBBEOO=noA+o*v#A@&D=aSDa|z1+{n<-#4^p) z(lRA6$t2A(*&L6pVOt$ z*Zuq%yAh{rNmgP+Nm_W41%m?PEJk(?M$suso&P~BCegGX9zd292eXtIhmjCRi{Z5Y z{=)zMOK~uOL4!S;5DN#R76XW4GGb5@QsH1$Qs5GRNFzuo9xe{wN`>H({Gv(;W&l>H B!i)d_ literal 0 HcmV?d00001 diff --git a/test-cases/account_data_02.txtproto b/test-cases/account_data_02.txtproto new file mode 100644 index 00000000..7fd85567 --- /dev/null +++ b/test-cases/account_data_02.txtproto @@ -0,0 +1,119 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -7789932 + }, + CustomChatColor { + id = 2 + solid = -11995034 + }, + CustomChatColor { + gradient = Gradient { + angle = 50 + colors = [ + -6934140, + -126129 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_ULTRAMARINE + wallpaperPhoto = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = + key = + mediaName = "e3670f77ebf5e721149f599dab4f9c8a" + size = 2094646670 + transitCdnKey = "EtjaXtfWb" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "fktWAZnl" + height = 3361 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 823 + } + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 1514863930 + } + avatarUrlPath = "https://example.com/BvsKAUVdtL" + backupsSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <7413fec76076c9df65cfa830a11a5cb82d872d622f7cb73a1c085a95699762ba> + } + donationSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <6eb51ac08d871eb76f2e7e3825d55d76500fad6608e092e4becbfbbe1e28e38b> + } + familyName = "QxVufxIRR" + givenName = "vNHEreJDueIn" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.WHITE + entropy = <00205ee8e14dd5d6df1bf0ae271eed9d640edd3bd1e1a6cfc758125a94372c26> + serverId = <44b7a5ed7fed22b2f329b86acb134608> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_03.binproto b/test-cases/account_data_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..9c439942e323af9be3609223ab7b72bb58529fe0 GIT binary patch literal 497 zcmd<&U=+CVYr*{Qh8vi<)-rP`%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q);gxoKLT96sefz@mn$}%QZym7qGry9RvBP_n=lMW~%UwbO z-H%QyF8JlXKtjO${`m*@rb;kdX>uu43O=uFa{1`YvLrf`Yvw!N&;N~%=qdGlcr)p- zgiimOCqm5bP5}~(PC%t;_c$1*=d;^|Nu5wRT$tUsRrEyNoz(96L62G6jRfztL6v%a zV6$ zlafqQk}QoaQw@wwj1qyQX-Y~`s(D(fi2$>dz)h3*J5d|Y7j0m-c&PfmxIjsut7zYD z-<_5ZOtc=D-rZOKM5A%ux#es|yy=ntRe`}}Udc&S?vWNu3QV&Y**O?R4;+8}AH-r3 z<@CG>WJz%_ONnt<3vt9p3jQw+-1%RMg8>X0?Ae4^I2g4UKopY^gPM>E2eXm_mjFZ> UK}zv(arjm$1efF&RZ1`e07_h{DF6Tf literal 0 HcmV?d00001 diff --git a/test-cases/account_data_03.txtproto b/test-cases/account_data_03.txtproto new file mode 100644 index 00000000..6c5455a7 --- /dev/null +++ b/test-cases/account_data_03.txtproto @@ -0,0 +1,107 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -1325120 + }, + CustomChatColor { + id = 2 + solid = -2537207 + }, + CustomChatColor { + gradient = Gradient { + angle = 59 + colors = [ + -15640225, + -4632205 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_CRIMSON + dimWallpaperInDarkMode = true + wallpaperPhoto = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <8a72bebb4db939e0342ae035ddbe7fe4> + key = + mediaName = "8a72bebb4db939e0342ae035ddbe7fe4" + size = 1693683457 + transitCdnKey = "gYOzQSvJcbzGY" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "OymkbGZomPlLHy" + contentType = "image/gif" + fileName = "xHDjKnB" + height = 781 + width = 3896 + } + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 1083889414 + } + avatarUrlPath = "" + backupsSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <66de0801976f073e561ac824c3716b81b515c87edc658b9f52e305873211de86> + } + donationSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <7911e7798244f14304a45b550a99ee0df3ff32c42e228cf0ec92e3182c8face4> + } + familyName = "" + givenName = "" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.GREY + entropy = + serverId = <8be2cb21a0fa47a0181037dfcfe0de95> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_04.binproto b/test-cases/account_data_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..933d04b34c4b9fc80a1bc662f7e6ddc058ab37d6 GIT binary patch literal 454 zcmd<&U=+CVYr*{QhONw8P0U;hGZ$>IQ1S7-cR6#X=xm~D$|;KjXHIY zKFty0h)PfQ&eyZBkTT;^c$WOU`K;@YJ@2%4DTz9V{ZQ(8Xu-B;3&SVFyfuo_lQo0{ zHZDtOGhO;RGbHT1`km#cA|zOpc-)-Ie7)U6e3LzWaqOY^;+Faq7mD8Z<}sKIE!XmRb%j+=}gi~)=hj0ubx zj0KDpj17#89gK{VfP_#pqY`IgX-a0ker|!WmcRzJp4b)XFSdk~I!9hHuCg&`5O6rg z>TyUqh}*|K#jU(5HP16ImCKJy!7L@&Fx4PA#n2+jASKP%G{q<-CDFnt(IhP`HPP6} zNPs~~fQz{!`Sk|-w=Hd7B(w8UbCd*f4?Z|6vEjbyrMoM%{QoUh()iHVc9&U!c@`r( z2cu}kEc^c;7L#c3B^Mw|nuA$NoZ~N}5J&B-3;+4rL;p*0Fn~dWJ(~~<2cs4Ph+;Bg fP!m$&U{+G#5`ah}NGTpJ4&O?J;FA2JN(p8F!d#Q* literal 0 HcmV?d00001 diff --git a/test-cases/account_data_04.txtproto b/test-cases/account_data_04.txtproto new file mode 100644 index 00000000..5102b4a6 --- /dev/null +++ b/test-cases/account_data_04.txtproto @@ -0,0 +1,107 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -12608904 + }, + CustomChatColor { + id = 2 + solid = -12266925 + }, + CustomChatColor { + gradient = Gradient { + angle = 253 + colors = [ + -3106179, + -11172082 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_VERMILION + wallpaperPhoto = FilePointer { + backupLocator = BackupLocator { + digest = <6dc1e0cd18b0df35d2dda82a4ffea322> + key = <0a038863ebb03fed8486f4196b6e656c> + mediaName = "6dc1e0cd18b0df35d2dda82a4ffea322" + size = 1000441712 + } + caption = "LGdFwzenIne" + contentType = "audio/mp3" + height = 3522 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 710 + } + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 456011350 + } + avatarUrlPath = "https://example.com/MRnBbKuo" + familyName = "JRYwuBEiK" + givenName = "FBvMKGTMcILm" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = + serverId = + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_05.binproto b/test-cases/account_data_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..1bf3d97f191e11e9eda84beba1843516e41566db GIT binary patch literal 492 zcmd<&U=+CVYr*{QhO3#mRxooZ%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q)VQ*vhvf!srC6)g>pLy7S?q7f0`Uy5thYN17sUCSD+h`#q z(8-m5hPUSJgA1$=R{id|(JjHM#8c+y;aZgHTDsJxsg86U48 z9W%33y*lTLQdOUPAK#i_BUR(@aL@eWTpV|LD28Y`w$0)GOVr1uF6rG~f`5(k$5>5Nz z0c1&WFiVMX7zuH-7*6}|FZ}Pn6bAzsG}yBVv2ZYIF@Pv0BL+1g6%J-41ug-IG=h}k R;o|VER0uA~FRGMa1^@~?uu%X2 literal 0 HcmV?d00001 diff --git a/test-cases/account_data_05.txtproto b/test-cases/account_data_05.txtproto new file mode 100644 index 00000000..79c146ca --- /dev/null +++ b/test-cases/account_data_05.txtproto @@ -0,0 +1,101 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -7789932 + }, + CustomChatColor { + id = 2 + solid = -11995034 + }, + CustomChatColor { + gradient = Gradient { + angle = 50 + colors = [ + -6934140, + -126129 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_BURLAP + dimWallpaperInDarkMode = true + wallpaperPhoto = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "eejhnSfTgFokL" + digest = <00b2dee58107854a29a3b2f195b0f63b> + key = <0c3ae62e4a5aa0bbf67baa9066da53ca> + size = 193250115 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "fktWAZnl" + } + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 1514863930 + } + avatarUrlPath = "https://example.com/BvsKAUVdtL" + backupsSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "QxVufxIRR" + givenName = "vNHEreJDueIn" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.GREEN + entropy = + serverId = <890a6fcc0d7cede0d005e0aafb8cd88b> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_06.binproto b/test-cases/account_data_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6bd40dfec4d0f938fa24242479ca28ffe9b0b0be GIT binary patch literal 492 zcmd<&U=+CVYr*{QhO3#mRxooZ%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~BPu=JJ73SjLduLw;a}MCiGS{`m|ka~s#7ZVSvlOAk9|j84C*_0$ zx(pvV8GH)9Q8N9?cH8w&eo3%dsdFjhZIwFE+b*{~U$4$W^=fQc0RP%Fjt7&T>^uE? zpPa_yZXssZ&>$zE!V=+s#}mp<-cLQh!eF6P%nsdl-6Z{*?N%}zQByOgC+z|&^m@+- z^ai5@qXMG_qXDBu+q%~+EFO#jj1i0pj2Vmtj1`OxjEo(OjFT9rFbefEDsg4zCZ?zA zXBDKTYYA*n>xo^F{$fi=sdMBN<0>121_3Mf3J;eo?>r}m?Q9+krGgluWPCh*t!jgu zEbMjTeDqRGV*T~um+FM~ z7kgCZ-9GY*D^g3~&y6WYKjv?IwY)8Cs>qI2I}Ki4-SmZBfpr!mI|rlaf#a|LgIG+W zoSrv + key = + size = 2123148010 + uploadTimestamp = 1776491210910 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/jpeg" + fileName = "xHDjKnB" + height = 3361 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 823 + } + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 1083889414 + } + avatarUrlPath = "" + backupsSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <7413fec76076c9df65cfa830a11a5cb82d872d622f7cb73a1c085a95699762ba> + } + donationSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <6eb51ac08d871eb76f2e7e3825d55d76500fad6608e092e4becbfbbe1e28e38b> + } + familyName = "" + givenName = "" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.ORANGE + entropy = + serverId = <8a31e24230f253d87497d4b73dafe4fa> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_07.binproto b/test-cases/account_data_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..8a07d3db238a0349c067286cd9a66a9775955f2a GIT binary patch literal 483 zcmd<&U=+CVYr*{QhKrcF<}-6C%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q)!F6@q+P_L=ao$^ADvm2M2B+Ce8>CwztIsrrJfIO zCOwwW>0k3ih}qpKK!VW;s5I>!2jld7cDpdC6Do%bvm3XHo~XN%+C4w$F>AY#;Jr4e zQm@sF7T50VxXD<+(80(wi80%PQ7Bc3Gcz|aJypLTFWq5>oJTKP5TAc#Zg!G;RDNzi zj*myBkP{bgYHC(SUT|7Sx?6s>j{vj8?mO3ie>PPT=s2JKtK;z}FU94pf`QEwe`^W2 zy|}{_EHnAg?;DHc*;P%h8mv9p`ifnFZ5AUt2cu}kEc^c;7L#c3B^Mw|nuA$NoZ~N} z5J&B-3;+4rL;p*0Fn~dWJ(~~<2cs4Ph+;BgP!m$&U{+G#5`ah}NGTpJ4&O?J;FA2J HN(p8F0U)S3 literal 0 HcmV?d00001 diff --git a/test-cases/account_data_07.txtproto b/test-cases/account_data_07.txtproto new file mode 100644 index 00000000..4d7d0ed3 --- /dev/null +++ b/test-cases/account_data_07.txtproto @@ -0,0 +1,104 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -12608904 + }, + CustomChatColor { + id = 2 + solid = -12266925 + }, + CustomChatColor { + gradient = Gradient { + angle = 253 + colors = [ + -3106179, + -11172082 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_WINTERGREEN + dimWallpaperInDarkMode = true + wallpaperPhoto = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "eejhnSfTgFokL" + cdnNumber = 3 + digest = <46e8dc0a531c93c2fbd8a21f072534d5> + key = <88cf6bfa88e3f24a21a78511518391fb> + size = 2101437613 + uploadTimestamp = 1852195597883 + } + caption = "OymkbGZomPlLHy" + contentType = "image/png" + height = 781 + width = 3896 + } + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 456011350 + } + avatarUrlPath = "https://example.com/MRnBbKuo" + backupsSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <66de0801976f073e561ac824c3716b81b515c87edc658b9f52e305873211de86> + } + donationSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <7911e7798244f14304a45b550a99ee0df3ff32c42e228cf0ec92e3182c8face4> + } + familyName = "JRYwuBEiK" + givenName = "FBvMKGTMcILm" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.PINK + entropy = <45ab5ead8eb9044ad79f0def3bddc876c8c58255a4a057c231e4090f3d46521f> + serverId = <6d1d851dd86c5b2ded7aba007b1eb92c> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_08.binproto b/test-cases/account_data_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..78dd80d5c4e46dd8ebd4343bc40212fca7a4ec4c GIT binary patch literal 415 zcmd<&U=+CVYr*{QhWD7bZZmNy%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~BPu=JJ73SjLduLwVZWm0uR7s-=S`*D)Mq!W?kjv3V=I-}@?&~@r1RUF+loR0 zdABy*+W4m5R_+ex<^3n7JeA;3;wkg=6U9&M#=c3`DB=diWJz%_ONnt9330R-PW$gK{O`XM2Ll*1 s*s}?-a4>2yfG8#-1~nlS4rV0`0ETdcRsaA1 literal 0 HcmV?d00001 diff --git a/test-cases/account_data_08.txtproto b/test-cases/account_data_08.txtproto new file mode 100644 index 00000000..de1e3fba --- /dev/null +++ b/test-cases/account_data_08.txtproto @@ -0,0 +1,104 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -7789932 + }, + CustomChatColor { + id = 2 + solid = -11995034 + }, + CustomChatColor { + gradient = Gradient { + angle = 50 + colors = [ + -6934140, + -126129 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_TEAL + wallpaperPhoto = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "LGdFwzenIne" + contentType = "image/gif" + fileName = "fktWAZnl" + height = 3522 + incrementalMac = + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 710 + } + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 1514863930 + } + avatarUrlPath = "https://example.com/BvsKAUVdtL" + familyName = "QxVufxIRR" + givenName = "vNHEreJDueIn" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.PURPLE + entropy = + serverId = <6edab2dab1ec8f3d1edc09d3bfc894e5> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_09.binproto b/test-cases/account_data_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..8da5a051d89e0d9f5e9d51758dc6b2c87f1b5949 GIT binary patch literal 259 zcmd<&U=+CVYr*{QhKCrr_A_!R%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZUK%lS|?L + } + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "" + givenName = "" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_10.binproto b/test-cases/account_data_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..ce78dfff25a7d392d642947eedb563c018a430b2 GIT binary patch literal 402 zcmd<&U=+CVYr*{Qh8LN*&M|Q*%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~BPu=JJ73SjLduLwfyp@J;L+~x+o_u-UHJW%`P^6c#pxyAw@z8Qbo=e_FpYX4 zfnwSFyVCuRecpA@|80j+%RC82B_21YGGA}^5Z`1^pIj|Yub{~CQYY6;ZzGwEl9GaA zD}DXcip1Q4oK(H!{9JwCpggA}@6voLbuNXxtx^Yi+vT?B>(yDPUX3ja;9r}@@nF)E zeW!o#lhb(IEyU~^8sr32SR(xIctY99`>E$w7%Y^E*`eF6o1|Z}-AaZdYHH^6q+MWz zUhzQBGfFTjFlsOwFj`!@v*RYC2V($Z1Y-hY24ewZ1!DsvV+SMSBt{kvCI!w}jO-kY zq7}33|ASaeqQRG3fGlYaW+`!wzl=g0wX-h#=W7rBFU7$C1`YOXLM$ANS_~kH$%sKs dNQHx0Nr6iMB8?!Wc(^!xD;0uE@{1}Zm;tpNhT8xD literal 0 HcmV?d00001 diff --git a/test-cases/account_data_10.txtproto b/test-cases/account_data_10.txtproto new file mode 100644 index 00000000..5aea557b --- /dev/null +++ b/test-cases/account_data_10.txtproto @@ -0,0 +1,102 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -12608904 + }, + CustomChatColor { + id = 2 + solid = -12266925 + }, + CustomChatColor { + gradient = Gradient { + angle = 253 + colors = [ + -3106179, + -11172082 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_INDIGO + wallpaperPreset = WallpaperPreset.SOLID_COPPER + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 456011350 + } + avatarUrlPath = "https://example.com/MRnBbKuo" + backupsSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <7413fec76076c9df65cfa830a11a5cb82d872d622f7cb73a1c085a95699762ba> + } + donationSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <6eb51ac08d871eb76f2e7e3825d55d76500fad6608e092e4becbfbbe1e28e38b> + } + familyName = "JRYwuBEiK" + givenName = "FBvMKGTMcILm" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.BLUE + entropy = <023354c1c58b8bdb65b292d0fbfd03cef547a36774f7b594a5a5b7db5756287f> + serverId = <731ddfba674ec6f3bac14fed8832849e> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_11.binproto b/test-cases/account_data_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..de526b8b3e18e1ff71bd92eff4b03b41b6c5fb39 GIT binary patch literal 382 zcmd<&U=+CVYr*{QhI^T~b}?}&%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q)fk7ee#Y5k#*X~PySf?)cc5VvaUF(Yvmz_TzArv*mTt`hv zz-9Z=xAkw8HhtFIk#$=X$Ve`uq@h7d=&kuUc+HNFx zuMMiy%hh7nuho}W3m7^WnIiWJz%_ONnt9 z330R-PW$gK{O`XM2Ll*1*s}?-a4>2yfG8#-1~nlS4rV0`0QrJ|djJ3c literal 0 HcmV?d00001 diff --git a/test-cases/account_data_11.txtproto b/test-cases/account_data_11.txtproto new file mode 100644 index 00000000..a3956a40 --- /dev/null +++ b/test-cases/account_data_11.txtproto @@ -0,0 +1,91 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -7789932 + }, + CustomChatColor { + id = 2 + solid = -11995034 + }, + CustomChatColor { + gradient = Gradient { + angle = 50 + colors = [ + -6934140, + -126129 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_VIOLET + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_DUST + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 1514863930 + } + avatarUrlPath = "https://example.com/BvsKAUVdtL" + backupsSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <66de0801976f073e561ac824c3716b81b515c87edc658b9f52e305873211de86> + } + donationSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <7911e7798244f14304a45b550a99ee0df3ff32c42e228cf0ec92e3182c8face4> + } + familyName = "QxVufxIRR" + givenName = "vNHEreJDueIn" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.WHITE + entropy = <00205ee8e14dd5d6df1bf0ae271eed9d640edd3bd1e1a6cfc758125a94372c26> + serverId = <44b7a5ed7fed22b2f329b86acb134608> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_12.binproto b/test-cases/account_data_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..adfcaad18820dd10da22b5ab3d5fccb690f447ed GIT binary patch literal 264 zcmd<&U=+CVYr*{QhQ}GXjxcg5%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~BPu=JJ73SjLduLw;gxoKLT96sefz@mn$}%QZym7qGry9RvBP_n=lMW~%UwbO z-H%QyF8JlXKtjO${`m*@rb;k-#R2VPlwed~)L=AVv}jxRx`oAqF@Q0GF@Z6Iv4F9H zv4N4XgOPC(BMS$M0{1LNb`D0-1IJ(g2eFt$IX!OzSyCL#Qeqs|LLBjtg8z#Hcm9{+ vU;u*#dp02!4n{2o5XEG~peCfk!K|dfB><5|kWxHc9KMwb!6o@cl@iPVI0a9r literal 0 HcmV?d00001 diff --git a/test-cases/account_data_12.txtproto b/test-cases/account_data_12.txtproto new file mode 100644 index 00000000..05bb27f6 --- /dev/null +++ b/test-cases/account_data_12.txtproto @@ -0,0 +1,94 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -1325120 + }, + CustomChatColor { + id = 2 + solid = -2537207 + }, + CustomChatColor { + gradient = Gradient { + angle = 59 + colors = [ + -15640225, + -4632205 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_PLUM + wallpaperPreset = WallpaperPreset.SOLID_CELADON + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 1083889414 + } + avatarUrlPath = "" + familyName = "" + givenName = "" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.GREY + entropy = + serverId = <8be2cb21a0fa47a0181037dfcfe0de95> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_13.binproto b/test-cases/account_data_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6e793940a2f18a53b42c503cc6d768023eb7d5d8 GIT binary patch literal 381 zcmd<&U=+CVYr*{QhI^Q}b~14(%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q);aT$Y=CiIp_Po>Hr6lSc_Cu-Xp#|HXEexLw^VTRzPu36; z*tjgA&2;JO%#g72>UWl(ijZJY;&F2-^YwNQ@lE#h$<^ZY3W_W*b#l%0Hj>FGDJdwn z($`O|NX#wBN!3fv&(-%0%5zHcF3q>n3lB9A5?exC0q5j`Q|{lQ-zd1hMO z|C)Xs;hUGvD8w8Z>>|PF1XTK7GT-y(i9OL*er$H&XA4~0WqbXiS$KW$^rQw$>;ERw zP^DgO7T50VxXD<+(80(wiIL5Mk%Lu%XBHzn2cu}kEc^c;7L#c3B^Mw|nuA$NoZ~N} z5J&B-3;+4rL;p*0Fn~dWJ(~~<2cs4Ph+;BgP!m$&U{+G#5`ah}NGTpJ4&O?J;FA2J HN(p8FDyxF~ literal 0 HcmV?d00001 diff --git a/test-cases/account_data_13.txtproto b/test-cases/account_data_13.txtproto new file mode 100644 index 00000000..7345bb22 --- /dev/null +++ b/test-cases/account_data_13.txtproto @@ -0,0 +1,91 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -12608904 + }, + CustomChatColor { + id = 2 + solid = -12266925 + }, + CustomChatColor { + gradient = Gradient { + angle = 253 + colors = [ + -3106179, + -11172082 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_TAUPE + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_RAINFOREST + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 456011350 + } + avatarUrlPath = "https://example.com/MRnBbKuo" + backupsSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "JRYwuBEiK" + givenName = "FBvMKGTMcILm" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = + serverId = + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_14.binproto b/test-cases/account_data_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..61b53410e33aea7f57552ed7e2747d201c0e6988 GIT binary patch literal 403 zcmd<&U=+CVYr*{QhL@PQ&NFc-%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~BPu=JJ73SjLduLwVQ*vhvf!srC6)g>pLy7S?q7f0`Uy5thYN17sUCSD+h`#q z(8-m5hPUSJgA1$=R{id|(JjHM#8c+y;aZgHNYX zdb02I?|pI_kGqAKT|#J9$6#{0f7GQZYMp+jW!lYqnd-a70bboSw7` ztk5eC=zT^BMg>L zgHd#fQs;jVi%B%?hX;@)#lb8k#$hDH(PB95zrXOm|56+bV9;RCCd9(QsKo%Hn2Z?I egj6_~l@z!HAkqj@iieBCw^AXvB)_Oqf*Am(qK0Dt literal 0 HcmV?d00001 diff --git a/test-cases/account_data_14.txtproto b/test-cases/account_data_14.txtproto new file mode 100644 index 00000000..64d038e9 --- /dev/null +++ b/test-cases/account_data_14.txtproto @@ -0,0 +1,102 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -7789932 + }, + CustomChatColor { + id = 2 + solid = -11995034 + }, + CustomChatColor { + gradient = Gradient { + angle = 50 + colors = [ + -6934140, + -126129 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_STEEL + wallpaperPreset = WallpaperPreset.SOLID_PACIFIC + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 1514863930 + } + avatarUrlPath = "https://example.com/BvsKAUVdtL" + backupsSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <7413fec76076c9df65cfa830a11a5cb82d872d622f7cb73a1c085a95699762ba> + } + donationSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <6eb51ac08d871eb76f2e7e3825d55d76500fad6608e092e4becbfbbe1e28e38b> + } + familyName = "QxVufxIRR" + givenName = "vNHEreJDueIn" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.GREEN + entropy = + serverId = <890a6fcc0d7cede0d005e0aafb8cd88b> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_15.binproto b/test-cases/account_data_15.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3c0247d0bc49483feb867c14efbfe205fb891341 GIT binary patch literal 325 zcmd<&U=+CVYr*{QhAm87jZ9n$GZ$>IQ1S7-cR6#X=xm~D$|;KjXHIY zKFty0@F=XR^3$_4lQQE{_!oA3;-7mfrq>y$>XeFoRt~r3W8cwd7V&{S;XzsNNjV{b zF2hGo2A_g&luW;}-FE$xUlMFqnp_H%g3l|PTs}IpEQt=~n)#0R^M9iwdP+SX-b{Kd zq0_(Si4e29Q-B1c6HsZ|Jr2g{`RsOKQYTan7iKqZ6+KaRC$)Qi&|}tiBf)!ZP^Dh3 z7H#WZx3Cm2bTBeaVq~*mii257jKf-pBR*2_ ze{tZ>|56+bV9;RCCd9(QsKo%Hn2Z?Igj6_~l@z!HAkqj@iieBCw^AXvB)_Oqf*AlK CbZrR$ literal 0 HcmV?d00001 diff --git a/test-cases/account_data_15.txtproto b/test-cases/account_data_15.txtproto new file mode 100644 index 00000000..3dbb9107 --- /dev/null +++ b/test-cases/account_data_15.txtproto @@ -0,0 +1,91 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -1325120 + }, + CustomChatColor { + id = 2 + solid = -2537207 + }, + CustomChatColor { + gradient = Gradient { + angle = 59 + colors = [ + -15640225, + -4632205 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_EMBER + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_FROST + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 1083889414 + } + avatarUrlPath = "" + backupsSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <66de0801976f073e561ac824c3716b81b515c87edc658b9f52e305873211de86> + } + donationSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <7911e7798244f14304a45b550a99ee0df3ff32c42e228cf0ec92e3182c8face4> + } + familyName = "" + givenName = "" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.ORANGE + entropy = + serverId = <8a31e24230f253d87497d4b73dafe4fa> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_16.binproto b/test-cases/account_data_16.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0e1e759e18903fab1b6d77213ab79a305defb570 GIT binary patch literal 320 zcmd<&U=+CVYr*{QhW{D4{xEVW%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~BPu=JJ73SjLduLw!F6@q+Pzo7!?>b7!4RLuHD&jlhK1QfH8tGfiZ)z zfU$zHfswI;k#Q0u3kQb+|13s!4o1<6S@!=yEGE(5OD;f`GzYVkILBW`A&%Nv7yk3L zhyIu1U;u*#dp02!4n{2o5XEG~peCfk!K|dfB><5|kWxHc9KMwb!6o@cl@iPVXiZ<^ literal 0 HcmV?d00001 diff --git a/test-cases/account_data_16.txtproto b/test-cases/account_data_16.txtproto new file mode 100644 index 00000000..e47ea43d --- /dev/null +++ b/test-cases/account_data_16.txtproto @@ -0,0 +1,94 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -12608904 + }, + CustomChatColor { + id = 2 + solid = -12266925 + }, + CustomChatColor { + gradient = Gradient { + angle = 253 + colors = [ + -3106179, + -11172082 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_MIDNIGHT + wallpaperPreset = WallpaperPreset.SOLID_NAVY + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 456011350 + } + avatarUrlPath = "https://example.com/MRnBbKuo" + familyName = "JRYwuBEiK" + givenName = "FBvMKGTMcILm" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.PINK + entropy = <45ab5ead8eb9044ad79f0def3bddc876c8c58255a4a057c231e4090f3d46521f> + serverId = <6d1d851dd86c5b2ded7aba007b1eb92c> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_17.binproto b/test-cases/account_data_17.binproto new file mode 100644 index 0000000000000000000000000000000000000000..c4a94372f83ef2c2c7b825a61f29025087c12ae5 GIT binary patch literal 382 zcmd<&U=+CVYr*{QhI^T~b}?}&%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q)VZWm0uR7s-=S`*D)Mq!W?kjv3V=I-}@?&~@r1RUF+loR0 zdABy*+W4m5R_+ex<^3n7JeA;3;wkg#ePUmkg8 zTHXJeejVYPm(D1}92)E*!RQ23`d%{M^XG{@(N}(KcHn0VT-#-P{i0cTeem?8221Pz zCel!)Ual6qeyzU5TENi3$TW$O&4Q7GQ$b)BBRdD9=oF>S{~#8VXxa}CAWMpaSxSt< zNQk4waN2)=;eY?7I2gd7!JbWsg@aLx0YotwF{lZta4;(=a0x)95u_9k7l&`9LU2ib IQKbYk06`aood5s; literal 0 HcmV?d00001 diff --git a/test-cases/account_data_17.txtproto b/test-cases/account_data_17.txtproto new file mode 100644 index 00000000..21fbd776 --- /dev/null +++ b/test-cases/account_data_17.txtproto @@ -0,0 +1,91 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -7789932 + }, + CustomChatColor { + id = 2 + solid = -11995034 + }, + CustomChatColor { + gradient = Gradient { + angle = 50 + colors = [ + -6934140, + -126129 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_INFRARED + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_LILAC + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 1514863930 + } + avatarUrlPath = "https://example.com/BvsKAUVdtL" + backupsSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "QxVufxIRR" + givenName = "vNHEreJDueIn" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.PURPLE + entropy = + serverId = <6edab2dab1ec8f3d1edc09d3bfc894e5> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_18.binproto b/test-cases/account_data_18.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b41cd034e4a6eb7660b70a458019a7bdd8d8850a GIT binary patch literal 280 zcmd<&U=+CVYr*{QhSwRnt}t>b%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZUK%ol7BatJHzscDe2OdUY16S7XZp_}8X!Jec%k-|64` + } + donationSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <6eb51ac08d871eb76f2e7e3825d55d76500fad6608e092e4becbfbbe1e28e38b> + } + familyName = "" + givenName = "" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_19.binproto b/test-cases/account_data_19.binproto new file mode 100644 index 0000000000000000000000000000000000000000..88e56a1e2141f3b8100924410a555426576550af GIT binary patch literal 381 zcmd<&U=+CVYr*{QhI^Q}b~14(%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q)fyp@J;L+~x+o_u-UHJW%`P^6c#pxyAw@z8Qbo=e_FpYX4 zfnwSFyVCuRecpA@|80j+%RC82B_21YGGA}^5Z`1^pIj|Yub{~CQYY6;ZzGwEl9GaA zD}DXcip1Q4oK(H!{9JwCpggA}@6voLO)iB>!RM7tE+3s)mPChg&3woE`M=Q-J*A!x zZzesK(CJ_EM2OklDL{hJ38*yf9tY#}e0IAqsS_%P3$q)yik_&uliEE$=rL=%k>I^H zs8TOCi)(jw++-|Z=wM`;#K>mB$ib~3G>eg)gHg0%mi>Pai%B&2k_(U}&A}`s&heK~ zh@*Dah5vl*q5q{g7{H*xo=u2_gHekCL@^mLs0pcXFe@o=2|%O~q!bSqhi|1qa7lhq Hr35nozvzQ; literal 0 HcmV?d00001 diff --git a/test-cases/account_data_19.txtproto b/test-cases/account_data_19.txtproto new file mode 100644 index 00000000..cf93e9f6 --- /dev/null +++ b/test-cases/account_data_19.txtproto @@ -0,0 +1,91 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -12608904 + }, + CustomChatColor { + id = 2 + solid = -12266925 + }, + CustomChatColor { + gradient = Gradient { + angle = 253 + colors = [ + -3106179, + -11172082 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_FLUORESCENT + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_EGGPLANT + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 456011350 + } + avatarUrlPath = "https://example.com/MRnBbKuo" + backupsSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <66de0801976f073e561ac824c3716b81b515c87edc658b9f52e305873211de86> + } + donationSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <7911e7798244f14304a45b550a99ee0df3ff32c42e228cf0ec92e3182c8face4> + } + familyName = "JRYwuBEiK" + givenName = "FBvMKGTMcILm" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.BLUE + entropy = <023354c1c58b8bdb65b292d0fbfd03cef547a36774f7b594a5a5b7db5756287f> + serverId = <731ddfba674ec6f3bac14fed8832849e> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_20.binproto b/test-cases/account_data_20.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b31894c19f410ab490bd9b13e40d98f989781e60 GIT binary patch literal 321 zcmd<&U=+CVYr*{Qh7C+ye;K(HW-i!Zq2l9v?{el&(c8yvUiSK`Zg=3|Ri-uf8g=R( zeVQZ05tW|qov&wMA!Wv;z@QNK;-T-=Yxku;tW%eJJ2!>zuJy%-%g!H<5Q>^&uA?R- z;Ie(`+xoXkn?7sq$T}_T#v#F^#8c+y;aZgH + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.WHITE + entropy = <00205ee8e14dd5d6df1bf0ae271eed9d640edd3bd1e1a6cfc758125a94372c26> + serverId = <44b7a5ed7fed22b2f329b86acb134608> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_21.binproto b/test-cases/account_data_21.binproto new file mode 100644 index 0000000000000000000000000000000000000000..29c9b7b950d943b12424fd59d3d780916731cf76 GIT binary patch literal 325 zcmd<&U=+CVYr*{QhAm87jZ9n$GZ$>IQ1S7-cR6#X=xm~D$|;KjXHIY zKFty0@F=XR^3$_4lQQE{c%|K*(Anr@-@fp?rghiSTL-ND%&%l+?C@UYc|OqLa+i=m z_oLH_3x2sTkPtAxfBwO}sS?aqnp_I^CtrFrP2|z!!_V{mB%&uoyg&HMBhO5$`(M+q zBYgAH8HJcbgIy#Toq$T;OXhq2Jh3PG%8$(s{A_`1yKJvtGz+f}o}ScTY5m_s8miRG z)uL_P>lT&*h7LxiNsMe3j2yfQBC{CTIT%F`9Dn^E#9|WV^t=gVNpUbsiE&s9al}Uo z{x1&P`Cp2I0Sp@K*@Rd)7_}Hc6q6Bynve + } + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "" + givenName = "" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.GREY + entropy = + serverId = <8be2cb21a0fa47a0181037dfcfe0de95> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_22.binproto b/test-cases/account_data_22.binproto new file mode 100644 index 0000000000000000000000000000000000000000..13e3f3329f11661b0fb70cce784e5726a7ab5f79 GIT binary patch literal 402 zcmd<&U=+CVYr*{Qh8LN*&M|Q*%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~BPu=JJ73SjLduLw;aT$Y=CiIp_Po>Hr6lSc_Cu-Xp#|HXEexLw^VTRzPu36; z*tjgA&2;JO%#g72>UWl(ijZJY;&F2-^YwNQ@lE#h$<^ZY3W_W*b#l%0Hj>FGDJdwn z($`O|NX#wBN!3fv&(-%0%5zHcF3q=6=TgYqDs`Z@U2c26UY&*N)!4EC{qAK~6x0CBpxXCzPGMpL%|U!9uB+9lGthN%}S0tzt1j2P5} dR5+NG6u1N+(g;$Dhl|6vQX#k`zo=4z833&4gOvaP literal 0 HcmV?d00001 diff --git a/test-cases/account_data_22.txtproto b/test-cases/account_data_22.txtproto new file mode 100644 index 00000000..cd3f1061 --- /dev/null +++ b/test-cases/account_data_22.txtproto @@ -0,0 +1,102 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -12608904 + }, + CustomChatColor { + id = 2 + solid = -12266925 + }, + CustomChatColor { + gradient = Gradient { + angle = 253 + colors = [ + -3106179, + -11172082 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_SEA + wallpaperPreset = WallpaperPreset.GRADIENT_NOIR + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 456011350 + } + avatarUrlPath = "https://example.com/MRnBbKuo" + backupsSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <7413fec76076c9df65cfa830a11a5cb82d872d622f7cb73a1c085a95699762ba> + } + donationSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <6eb51ac08d871eb76f2e7e3825d55d76500fad6608e092e4becbfbbe1e28e38b> + } + familyName = "JRYwuBEiK" + givenName = "FBvMKGTMcILm" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = + serverId = + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_23.binproto b/test-cases/account_data_23.binproto new file mode 100644 index 0000000000000000000000000000000000000000..1b63c2ef7060b8bd79f8a1a23a269417a19d9b0e GIT binary patch literal 382 zcmd<&U=+CVYr*{QhI^T~b}?}&%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q)VQ*vhvf!srC6)g>pLy7S?q7f0`Uy5thYN17sUCSD+h`#q z(8-m5hPUSJgA1$=R{id|(JjHM#8c+y;aZgHaGOp_SdEEqZX6~tySvU4zsPEqRo4`MNirv2~$vZOeerNlUl zgg9CZr~UUA{`X&sg8>X0?Ae4^I2g4UKopY^gPM>E2eXm_mjFZ>K}zv(arjm$1efF& IRZ1`e0Iy1d`2YX_ literal 0 HcmV?d00001 diff --git a/test-cases/account_data_23.txtproto b/test-cases/account_data_23.txtproto new file mode 100644 index 00000000..853ebbce --- /dev/null +++ b/test-cases/account_data_23.txtproto @@ -0,0 +1,91 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -7789932 + }, + CustomChatColor { + id = 2 + solid = -11995034 + }, + CustomChatColor { + gradient = Gradient { + angle = 50 + colors = [ + -6934140, + -126129 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_TANGERINE + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.GRADIENT_HEATMAP + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 1514863930 + } + avatarUrlPath = "https://example.com/BvsKAUVdtL" + backupsSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <66de0801976f073e561ac824c3716b81b515c87edc658b9f52e305873211de86> + } + donationSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <7911e7798244f14304a45b550a99ee0df3ff32c42e228cf0ec92e3182c8face4> + } + familyName = "QxVufxIRR" + givenName = "vNHEreJDueIn" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.GREEN + entropy = + serverId = <890a6fcc0d7cede0d005e0aafb8cd88b> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_24.binproto b/test-cases/account_data_24.binproto new file mode 100644 index 0000000000000000000000000000000000000000..76e97fee71b2eacc158efd2b917067bd6dad7d36 GIT binary patch literal 264 zcmd<&U=+CVYr*{QhQ}GXjxcg5%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~BPu=JJ73SjLduLw;a}MCiGS{`m|ka~s#7ZVSvlOAk9|j84C*_0$ zx(pvV8GH)9Q8N9?cH8w&eo3%-#R2VPlwed~)L=AVv}jxRx`oAqF@Q0GF@Z6Iv4F9H zv4N4XgOPC(BMXOs2IDM7b`D0-1IJ(g2eFt$IX!OzSyCL#Qeqs|LLBjtg8z#Hcm9{+ vU;u*#dp02!4n{2o5XEG~peCfk!K|dfB><5|kWxHc9KMwb!6o@cl@iPV^x02D literal 0 HcmV?d00001 diff --git a/test-cases/account_data_24.txtproto b/test-cases/account_data_24.txtproto new file mode 100644 index 00000000..a1bbf395 --- /dev/null +++ b/test-cases/account_data_24.txtproto @@ -0,0 +1,94 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -1325120 + }, + CustomChatColor { + id = 2 + solid = -2537207 + }, + CustomChatColor { + gradient = Gradient { + angle = 59 + colors = [ + -15640225, + -4632205 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + customColorId = 1 + wallpaperPreset = WallpaperPreset.GRADIENT_AQUA + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 1083889414 + } + avatarUrlPath = "" + familyName = "" + givenName = "" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.ORANGE + entropy = + serverId = <8a31e24230f253d87497d4b73dafe4fa> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_25.binproto b/test-cases/account_data_25.binproto new file mode 100644 index 0000000000000000000000000000000000000000..551dbd6800275ad3eb8301347c1d3f2cc5ee6abf GIT binary patch literal 381 zcmd<&U=+CVYr*{QhI^Q}b~14(%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q)!F6@q+PDTE)tARK&9^`^F4o_*b{x_$7Tn9w!pPrw%0G3h1Um9PinBV{%;}; zRqEwtaqZ5In~Vhv9gIwq7}+csIRrJBW-+pJFp5^pvi}caF^L9WasjfWIhduyIsP&V zan#Pb@Sm?e^uH7b0~j>evk9?qFlsS?C?+EYH6axaW+eqK0f;n$l;Yvy@U2t`F3B&d Hlwbw`ioJlO literal 0 HcmV?d00001 diff --git a/test-cases/account_data_25.txtproto b/test-cases/account_data_25.txtproto new file mode 100644 index 00000000..fc9a2497 --- /dev/null +++ b/test-cases/account_data_25.txtproto @@ -0,0 +1,91 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -12608904 + }, + CustomChatColor { + id = 2 + solid = -12266925 + }, + CustomChatColor { + gradient = Gradient { + angle = 253 + colors = [ + -3106179, + -11172082 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + customColorId = 2 + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.GRADIENT_IRIDESCENT + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 456011350 + } + avatarUrlPath = "https://example.com/MRnBbKuo" + backupsSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "JRYwuBEiK" + givenName = "FBvMKGTMcILm" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.PINK + entropy = <45ab5ead8eb9044ad79f0def3bddc876c8c58255a4a057c231e4090f3d46521f> + serverId = <6d1d851dd86c5b2ded7aba007b1eb92c> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_26.binproto b/test-cases/account_data_26.binproto new file mode 100644 index 0000000000000000000000000000000000000000..22a82d3e737ede658d3468ad882727272cbfc8f4 GIT binary patch literal 403 zcmd<&U=+CVYr*{QhL@PQ&NFc-%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~BPu=JJ73SjLduLwVZWm0uR7s-=S`*D)Mq!W?kjv3V=I-}@?&~@r1RUF+loR0 zdABy*+W4m5R_+ex<^3n7JeA;3;wkg + } + donationSubscriberData = SubscriberData { + currencyCode = "EUR" + subscriberId = <6eb51ac08d871eb76f2e7e3825d55d76500fad6608e092e4becbfbbe1e28e38b> + } + familyName = "QxVufxIRR" + givenName = "vNHEreJDueIn" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.PURPLE + entropy = + serverId = <6edab2dab1ec8f3d1edc09d3bfc894e5> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_27.binproto b/test-cases/account_data_27.binproto new file mode 100644 index 0000000000000000000000000000000000000000..018da3f9b46f15a705e44ba1706b8959ab3ea3a8 GIT binary patch literal 259 zcmd<&U=+CVYr*{QhKCrr_A_!R%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZUK%lS`pe@OfpE%SUIHCDEZ=GvD!k{%>?dPpRj_n@Nu)bo$pk5n^_C3XouQ0xC_r z$H6!~pWQA@>V(SS!tBPaq9^L^q;}5_dd%8xBzUh4s?^KXqHW#l7M22r4o0R)jBFN+ z9Kuozvl!Vq7)1{pfBhfCViM)_ya{AUaWG4Xaaap+#77GLFAm)KUy6eP3>xg&gjhHj mwHQDYlM#cOkO~L0k^+|iL>fU#@o;hYRw@LS + } + donationSubscriberData = SubscriberData { + currencyCode = "GBP" + manuallyCancelled = true + subscriberId = <7911e7798244f14304a45b550a99ee0df3ff32c42e228cf0ec92e3182c8face4> + } + familyName = "" + givenName = "" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_28.binproto b/test-cases/account_data_28.binproto new file mode 100644 index 0000000000000000000000000000000000000000..acf5f2142017abadcfedf82b40bb65de10d16dc7 GIT binary patch literal 320 zcmd<&U=+CVYr*{QhW{D4{xEVW%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~BPu=JJ73SjLduLwfyp@J;L+~x+o_u-UHJW%`P^6c#pxyAw@z8Qbo=e_FpYX4 zfnwSFyVCuRecpA@|80j+%RC82B_21YGGA}^5Z`1^pIj|Yub{~CQYY6;ZzGwEl9GaA zD}DXcip1Q4oK(H!{9JwCpggA}@6vp)c%V}mB^VVLH5d&TEw0_!ag))5F@Q0GF@Z6I zv4F9Hv4N4XgOPC(BMXO!0^=-3b`D0-idpvmK`bWG;7cw*mNW;mlsLy literal 0 HcmV?d00001 diff --git a/test-cases/account_data_28.txtproto b/test-cases/account_data_28.txtproto new file mode 100644 index 00000000..ae5c0f48 --- /dev/null +++ b/test-cases/account_data_28.txtproto @@ -0,0 +1,94 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -12608904 + }, + CustomChatColor { + id = 2 + solid = -12266925 + }, + CustomChatColor { + gradient = Gradient { + angle = 253 + colors = [ + -3106179, + -11172082 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_ULTRAMARINE + wallpaperPreset = WallpaperPreset.GRADIENT_SKY + } + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.EVERYBODY + preferContactAvatars = true + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 456011350 + } + avatarUrlPath = "https://example.com/MRnBbKuo" + familyName = "JRYwuBEiK" + givenName = "FBvMKGTMcILm" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "ZggKo.88" + usernameLink = UsernameLink { + color = Color.BLUE + entropy = <023354c1c58b8bdb65b292d0fbfd03cef547a36774f7b594a5a5b7db5756287f> + serverId = <731ddfba674ec6f3bac14fed8832849e> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/account_data_29.binproto b/test-cases/account_data_29.binproto new file mode 100644 index 0000000000000000000000000000000000000000..82f3a6c21438a9686466d9b9989f94c106f9fc1e GIT binary patch literal 382 zcmd<&U=+CVYr*{QhI^T~b}?}&%v`X+LdD1T-sQ}lqPLITyzKQ=-R{7_t4wR|HR{wo z`ZPy~!=tdO%1_VIOv;Q)fk7ee#Y5k#*X~PySf?)cc5VvaUF(Yvmz_TzArv*mTt`hv zz-9Z=xAkw8HhtFIk#$=X$Ve`uq@3hk1&z~puL|^%_*@2%eaBY|E^^0cV^}*AV8Z52< zn@B^IdbwKc`nCEJYXL(CBhw^CHVZ}$Q3a-1jO-kYqEnPQ|ASaeqG>-ofGjBvW+^ca zBO#6!!)gEhh5!AR;$Q%S275Lk77j)&1`x$$#Godm!ojShz$E~YMvziGTpYfY3c)4$ IMU@iF05!gYc>n+a literal 0 HcmV?d00001 diff --git a/test-cases/account_data_29.txtproto b/test-cases/account_data_29.txtproto new file mode 100644 index 00000000..21ffb434 --- /dev/null +++ b/test-cases/account_data_29.txtproto @@ -0,0 +1,91 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -7789932 + }, + CustomChatColor { + id = 2 + solid = -11995034 + }, + CustomChatColor { + gradient = Gradient { + angle = 50 + colors = [ + -6934140, + -126129 + ] + positions = [ + 0.0, + 1.0 + ] + } + id = 3 + } + ] + defaultChatStyle = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_CRIMSON + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.GRADIENT_PEACH + } + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + universalExpireTimerSeconds = 1514863930 + } + avatarUrlPath = "https://example.com/BvsKAUVdtL" + backupsSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "QxVufxIRR" + givenName = "vNHEreJDueIn" + profileKey = <99a0b038244c4dded369b915dbc6d9d34af5273ec0c1d502acde812c7ee2f29c> + username = "HqzzN.96" + usernameLink = UsernameLink { + color = Color.WHITE + entropy = <00205ee8e14dd5d6df1bf0ae271eed9d640edd3bd1e1a6cfc758125a94372c26> + serverId = <44b7a5ed7fed22b2f329b86acb134608> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/ad_hoc_call_00.binproto b/test-cases/ad_hoc_call_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3f9d10002bcb0a469821769afcb1757fd759eaab GIT binary patch literal 393 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn7xENtlTga2`MlV08)G*sl_D<&WSlW b3O<>6*$Rw&Mm!uV*Zn>JXwi(dZW4?D3BGAP literal 0 HcmV?d00001 diff --git a/test-cases/ad_hoc_call_00.txtproto b/test-cases/ad_hoc_call_00.txtproto new file mode 100644 index 00000000..21d13bc9 --- /dev/null +++ b/test-cases/ad_hoc_call_00.txtproto @@ -0,0 +1,108 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + callLink = CallLink { + adminKey = <0101010101010101010101010101010101010101010101010101010101010101> + name = "Test Call Link" + restrictions = Restrictions.NONE + rootKey = <00000000000000000000000000000000> + } + } +} + +Frame { + adHocCall = AdHocCall { + callId = 5069471078380689193 + state = State.GENERIC + } +} \ No newline at end of file diff --git a/test-cases/ad_hoc_call_01.binproto b/test-cases/ad_hoc_call_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b18b27e8628c1b484de31fb5cabc3fd7bba55006 GIT binary patch literal 400 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn7xENtlTga2`MlV08)G*sl_D<&WSlW i3O<>6*$RxJM#3BuUe8%N_4lRAIY2MXU%zC<1tS3Y_H8l% literal 0 HcmV?d00001 diff --git a/test-cases/ad_hoc_call_01.txtproto b/test-cases/ad_hoc_call_01.txtproto new file mode 100644 index 00000000..56e6a6e8 --- /dev/null +++ b/test-cases/ad_hoc_call_01.txtproto @@ -0,0 +1,109 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + callLink = CallLink { + adminKey = <0101010101010101010101010101010101010101010101010101010101010101> + name = "Test Call Link" + restrictions = Restrictions.NONE + rootKey = <00000000000000000000000000000000> + } + } +} + +Frame { + adHocCall = AdHocCall { + callId = 7829309874007127440 + callTimestamp = 1739546236831 + state = State.GENERIC + } +} \ No newline at end of file diff --git a/test-cases/ad_hoc_call_02.binproto b/test-cases/ad_hoc_call_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..394025b831523a80366c360efdacab005b49c50b GIT binary patch literal 400 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn7xENtlTga2`MlV08)G*sl_D<&WSlW i3O<>6*$RxJM#3Cle$UvyaMJyCAwVxZ?m2L5g#iHm9c^F$ literal 0 HcmV?d00001 diff --git a/test-cases/ad_hoc_call_02.txtproto b/test-cases/ad_hoc_call_02.txtproto new file mode 100644 index 00000000..dab1f1e0 --- /dev/null +++ b/test-cases/ad_hoc_call_02.txtproto @@ -0,0 +1,109 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + callLink = CallLink { + adminKey = <0101010101010101010101010101010101010101010101010101010101010101> + name = "Test Call Link" + restrictions = Restrictions.NONE + rootKey = <00000000000000000000000000000000> + } + } +} + +Frame { + adHocCall = AdHocCall { + callId = 6079152038928072180 + callTimestamp = 1660152710755 + state = State.GENERIC + } +} \ No newline at end of file diff --git a/test-cases/chat_00.binproto b/test-cases/chat_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..2192f7a3225e52c7018a2e6092c13ee9b77ac0b0 GIT binary patch literal 515 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&3Z(Klm<5<57%dnb7`>7#7=>b#xH5AS(^K`c3R2U# z{J0cMlMRwh)6A1B%}tHWEiFuw%nePGQ%uqT{uz!qFWb-!n isi~J#5{Ti6ubv)M*}7fytbb?G7Y&UMeQkG{r5FJ1Y=$ZT literal 0 HcmV?d00001 diff --git a/test-cases/chat_00.txtproto b/test-cases/chat_00.txtproto new file mode 100644 index 00000000..3b3b5572 --- /dev/null +++ b/test-cases/chat_00.txtproto @@ -0,0 +1,129 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + id = 3 + markedUnread = true + recipientId = 2 + style = ChatStyle { + autoBubbleColor = AutomaticBubbleColor {} + dimWallpaperInDarkMode = true + wallpaperPhoto = FilePointer { + backupLocator = BackupLocator { + digest = <5c0c5f7b97527985b715cd4f8972f428> + key = <3bd72e515007f15a21064b374c7c7f19> + mediaName = "5c0c5f7b97527985b715cd4f8972f428" + size = 1000441712 + } + contentType = "image/jpeg" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_01.binproto b/test-cases/chat_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..4d04d3cdbb1d97898f9ebc9736e22685ff5d8c5e GIT binary patch literal 614 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&E-^}-XXIcOU;=vbQTOzBeH+@YCK&Ac{`%6A|1Vw` zdu?JATFa=!nVFlIo~mDvm#!tSL9HitMf!^^A*IfdSB$G{3>pNiIMT99!X2aXavZj^ zc`TF)Vu+IQN%P4t3(HTm^z#h2FZXlP&CmDIwGMZTu*k3EiU!7`v6;C+nz?yuQkrS1 zxsjoviDjCprDaNDl1Z9nvPGf*la#=g|G!luDyQ11R_%0m- + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + expirationTimerMs = 6965407815217563106 + id = 3 + muteUntilMs = 3733945861451479994 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_ULTRAMARINE + wallpaperPhoto = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = + key = + mediaName = "e3670f77ebf5e721149f599dab4f9c8a" + size = 2094646670 + transitCdnKey = "EtjaXtfWb" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "fktWAZnl" + height = 3361 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 823 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_02.binproto b/test-cases/chat_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..7a96aab177cb1bfc696bffbdbd546528eeab436d GIT binary patch literal 616 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&t}senWaMBLV3J_e`1`kg$FgPDmSh;LzINfy>RVsl z=2|d1FnVoZv|tok$*9DcnVXoNs-K>jX2o9N;gaQ@=j556SeVt(FS&lhpO+33zP)9iuUdH-D&y2MC*a+ i-F@{>G#clfTh3<0n;z+36&PIRm7G-N9%;d(zytt^B(o#{ literal 0 HcmV?d00001 diff --git a/test-cases/chat_02.txtproto b/test-cases/chat_02.txtproto new file mode 100644 index 00000000..c6c87948 --- /dev/null +++ b/test-cases/chat_02.txtproto @@ -0,0 +1,139 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + expirationTimerMs = 7514635526255804157 + id = 3 + markedUnread = true + muteUntilMs = 7916152572632902443 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_CRIMSON + dimWallpaperInDarkMode = true + wallpaperPhoto = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <8a72bebb4db939e0342ae035ddbe7fe4> + key = + mediaName = "8a72bebb4db939e0342ae035ddbe7fe4" + size = 1693683457 + transitCdnKey = "gYOzQSvJcbzGY" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "OymkbGZomPlLHy" + contentType = "image/gif" + fileName = "xHDjKnB" + height = 781 + width = 3896 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_03.binproto b/test-cases/chat_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6d837de48d09f8a74fbe8f5674d9864e51985f48 GIT binary patch literal 552 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&rZ7rPWaMBLU{YZ8>R=RVW>n%#EKSMG*Uv35))LsD z))TuT{l%7$Qs>Ak##J^34FV3wSUnC&2XXtjr?{0@rRI6&rE>XkDVU`s8>Sj0rx;o! z8Kk5co2D40q$FAxC7PtAr6w9183`~*32-rYB){HZ|F)&=i)40QYL1dX?!gCVB{tkQ Wy>xelmjA!SN*W*f+U_zdFarQ%<(hi{ literal 0 HcmV?d00001 diff --git a/test-cases/chat_03.txtproto b/test-cases/chat_03.txtproto new file mode 100644 index 00000000..5d63f378 --- /dev/null +++ b/test-cases/chat_03.txtproto @@ -0,0 +1,131 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 3 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_VERMILION + wallpaperPhoto = FilePointer { + backupLocator = BackupLocator { + digest = <6dc1e0cd18b0df35d2dda82a4ffea322> + key = <0a038863ebb03fed8486f4196b6e656c> + mediaName = "6dc1e0cd18b0df35d2dda82a4ffea322" + size = 1000441712 + } + caption = "LGdFwzenIne" + contentType = "audio/mp3" + height = 3522 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 710 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_04.binproto b/test-cases/chat_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..024f1438572a1879b61bb9b611501a276d8304e5 GIT binary patch literal 554 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&rZGxQX5?TNV3J_ec+@@pUEhYbs|g0XzQ4Y- + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + expirationTimerMs = 6965407815217563106 + id = 3 + markedUnread = true + muteUntilMs = 3733945861451479994 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_BURLAP + dimWallpaperInDarkMode = true + wallpaperPhoto = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "eejhnSfTgFokL" + digest = <00b2dee58107854a29a3b2f195b0f63b> + key = <0c3ae62e4a5aa0bbf67baa9066da53ca> + size = 193250115 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "fktWAZnl" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_05.binproto b/test-cases/chat_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..926a75b230f3a301a9db6c8bc8dcf45bda9184e0 GIT binary patch literal 584 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&wlGRZ+&^2 z>otW@sGm`ZD>FASJyk!eAT?b}V1rsu?27akTS7{mBd-`&*%&kkSg}`lxMX?fIXP@+ z^H?Yq#1JLpVX7z$7v6 zV$;u?#!3Q9B2&3kC%nJdqcZRIkzZVqS^|G=OfmW~f8(p=ZDCVIcC6ZI@apQOFYF4e E0PBaaIRF3v literal 0 HcmV?d00001 diff --git a/test-cases/chat_05.txtproto b/test-cases/chat_05.txtproto new file mode 100644 index 00000000..bb5f8c0a --- /dev/null +++ b/test-cases/chat_05.txtproto @@ -0,0 +1,137 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + expirationTimerMs = 7514635526255804157 + id = 3 + muteUntilMs = 7916152572632902443 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_FOREST + wallpaperPhoto = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "LmtLxdKP" + cdnNumber = 2 + digest = + key = + size = 2123148010 + uploadTimestamp = 1776491210910 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/jpeg" + fileName = "xHDjKnB" + height = 3361 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 823 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_06.binproto b/test-cases/chat_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..77f8c54ede09dad117a219800ae60d7adff1f2e9 GIT binary patch literal 524 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&Dy7Ofm<5<57%dnb7`?JB7===mI5Tq-(^K^e^3ol4 z$a(a#1@ZY;=4L0kN9E@Rg?7nmT_h(ZjfsXUp tzd9a&@={#hDj3*2@wb+M+lxC~!7`H%{l2kCo?X@Cs=?Zmt*_V>*Z`&NlRW?c literal 0 HcmV?d00001 diff --git a/test-cases/chat_06.txtproto b/test-cases/chat_06.txtproto new file mode 100644 index 00000000..2f86c77c --- /dev/null +++ b/test-cases/chat_06.txtproto @@ -0,0 +1,134 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + id = 3 + markedUnread = true + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_WINTERGREEN + dimWallpaperInDarkMode = true + wallpaperPhoto = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "eejhnSfTgFokL" + cdnNumber = 3 + digest = <46e8dc0a531c93c2fbd8a21f072534d5> + key = <88cf6bfa88e3f24a21a78511518391fb> + size = 2101437613 + uploadTimestamp = 1852195597883 + } + caption = "OymkbGZomPlLHy" + contentType = "image/png" + height = 781 + width = 3896 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_07.binproto b/test-cases/chat_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..4a6dd9cbb40579b8d86f6723165ffc77983d6dae GIT binary patch literal 530 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&>ZNKqm<5=CUVPL&{axRNwyOySyS~4^wB-Mb7sg(R zLa|DmnYoGSsru=eX<7ms)Ouo9q`%k_QtBLe#kk7Gph3WjBQ3im+%YOI$Ke>O$06w; yZXfp)xALmgJkPw;C>ftLpA56G{6tGX&v5&4KR4a{d>>uwaK{LX{7NYX1$F@MUzPR% literal 0 HcmV?d00001 diff --git a/test-cases/chat_07.txtproto b/test-cases/chat_07.txtproto new file mode 100644 index 00000000..312258f4 --- /dev/null +++ b/test-cases/chat_07.txtproto @@ -0,0 +1,130 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + expirationTimerMs = 6965407815217563106 + id = 3 + muteUntilMs = 3733945861451479994 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_TEAL + wallpaperPhoto = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "LGdFwzenIne" + contentType = "image/gif" + fileName = "fktWAZnl" + height = 3522 + incrementalMac = + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 710 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_08.binproto b/test-cases/chat_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f1ac8eb747738d7cb9bb0469891b73b7be1a1042 GIT binary patch literal 443 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&G^Erxm<5<57&ZR>ZQrqM*|jAZ2CJ`K__O-fm$$hV Pj1G)mY!-|hj0zk8VCi-f literal 0 HcmV?d00001 diff --git a/test-cases/chat_08.txtproto b/test-cases/chat_08.txtproto new file mode 100644 index 00000000..3bc348c7 --- /dev/null +++ b/test-cases/chat_08.txtproto @@ -0,0 +1,123 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + expirationTimerMs = 7514635526255804157 + id = 3 + markedUnread = true + muteUntilMs = 7916152572632902443 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_BLUE + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_BLUSH + } + } +} \ No newline at end of file diff --git a/test-cases/chat_09.binproto b/test-cases/chat_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..07d1c8a32ef16be71e3197371eea0f3883136792 GIT binary patch literal 417 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV n6w|P9qF5bsGLuu2Sc7vjOERn&_@sC^m<5;=7`=cFQ{V&ut?_47 literal 0 HcmV?d00001 diff --git a/test-cases/chat_09.txtproto b/test-cases/chat_09.txtproto new file mode 100644 index 00000000..f2301658 --- /dev/null +++ b/test-cases/chat_09.txtproto @@ -0,0 +1,118 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 3 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_INDIGO + wallpaperPreset = WallpaperPreset.SOLID_COPPER + } + } +} \ No newline at end of file diff --git a/test-cases/chat_10.binproto b/test-cases/chat_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..24b33fd909f7164dc6c5e529c83556cf7682477c GIT binary patch literal 443 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&G^Erxm<5<57&RVsPk-09q3vpd!LIMGFD?21;)SsV PqXVNCn*}2WvjP_YQ(bkB literal 0 HcmV?d00001 diff --git a/test-cases/chat_10.txtproto b/test-cases/chat_10.txtproto new file mode 100644 index 00000000..1ff66ca5 --- /dev/null +++ b/test-cases/chat_10.txtproto @@ -0,0 +1,123 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + expirationTimerMs = 6965407815217563106 + id = 3 + markedUnread = true + muteUntilMs = 3733945861451479994 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_VIOLET + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_DUST + } + } +} \ No newline at end of file diff --git a/test-cases/chat_11.binproto b/test-cases/chat_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..2eaf4474a4172092309a14e9c7c13b51a997d0a8 GIT binary patch literal 437 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&l%y0mm<5=CUi|yFeaEt8*Op`$tiE>P&+1!W-sXC- JaIh$F0|1+&bzlGh literal 0 HcmV?d00001 diff --git a/test-cases/chat_11.txtproto b/test-cases/chat_11.txtproto new file mode 100644 index 00000000..188b7fd1 --- /dev/null +++ b/test-cases/chat_11.txtproto @@ -0,0 +1,120 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + expirationTimerMs = 7514635526255804157 + id = 3 + muteUntilMs = 7916152572632902443 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_PLUM + wallpaperPreset = WallpaperPreset.SOLID_CELADON + } + } +} \ No newline at end of file diff --git a/test-cases/chat_12.binproto b/test-cases/chat_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f38084a5ed945f41d94b3d41c8afbf1ecb8fa511 GIT binary patch literal 423 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV t6w|P9qF5bsGLuu2Sc7vjOERn&M5Kf`m<5<57%dnb7`@mm7&%xKcmN*NXcPbd literal 0 HcmV?d00001 diff --git a/test-cases/chat_12.txtproto b/test-cases/chat_12.txtproto new file mode 100644 index 00000000..08fa1f22 --- /dev/null +++ b/test-cases/chat_12.txtproto @@ -0,0 +1,121 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + id = 3 + markedUnread = true + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_TAUPE + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_RAINFOREST + } + } +} \ No newline at end of file diff --git a/test-cases/chat_13.binproto b/test-cases/chat_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f105c10ada4bdd87ecf4d355b7918c73f959c9c0 GIT binary patch literal 437 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&l%y0mm<5=CUVPL&{axRNwyOySyS~4^wB-Mb7sg&J I9Bc}_0Fg&@+yDRo literal 0 HcmV?d00001 diff --git a/test-cases/chat_13.txtproto b/test-cases/chat_13.txtproto new file mode 100644 index 00000000..c0c4d750 --- /dev/null +++ b/test-cases/chat_13.txtproto @@ -0,0 +1,120 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + expirationTimerMs = 6965407815217563106 + id = 3 + muteUntilMs = 3733945861451479994 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_STEEL + wallpaperPreset = WallpaperPreset.SOLID_PACIFIC + } + } +} \ No newline at end of file diff --git a/test-cases/chat_14.binproto b/test-cases/chat_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3df30579fb59cd5db8aef1a7c2adf6e98096c390 GIT binary patch literal 443 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&G^Erxm<5<57&ZR>ZQrqM*|jAZ2CJ`K__O-fm$$hV Pj1G)mY!-|h> + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + expirationTimerMs = 7514635526255804157 + id = 3 + markedUnread = true + muteUntilMs = 7916152572632902443 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_EMBER + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_FROST + } + } +} \ No newline at end of file diff --git a/test-cases/chat_15.binproto b/test-cases/chat_15.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e677dc3fa5c6f614b5cef69342a543c4e6d28f8a GIT binary patch literal 417 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV n6w|P9qF5bsGLuu2Sc7vjOERn&_@sC^m<5;=7`<3HI28B+t_f#h literal 0 HcmV?d00001 diff --git a/test-cases/chat_15.txtproto b/test-cases/chat_15.txtproto new file mode 100644 index 00000000..2d7fec19 --- /dev/null +++ b/test-cases/chat_15.txtproto @@ -0,0 +1,118 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 3 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_MIDNIGHT + wallpaperPreset = WallpaperPreset.SOLID_NAVY + } + } +} \ No newline at end of file diff --git a/test-cases/chat_16.binproto b/test-cases/chat_16.binproto new file mode 100644 index 0000000000000000000000000000000000000000..65e73ab44825e7c573f2c13cbdb5ef92fecf14fc GIT binary patch literal 443 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&G^Erxm<5<57&RVsPk-09q3vpd!LIMGFD?21;)SsV PqXVNCn*}2Wr-A?gQ+0Kl literal 0 HcmV?d00001 diff --git a/test-cases/chat_16.txtproto b/test-cases/chat_16.txtproto new file mode 100644 index 00000000..4e45335a --- /dev/null +++ b/test-cases/chat_16.txtproto @@ -0,0 +1,123 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + expirationTimerMs = 6965407815217563106 + id = 3 + markedUnread = true + muteUntilMs = 3733945861451479994 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_INFRARED + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_LILAC + } + } +} \ No newline at end of file diff --git a/test-cases/chat_17.binproto b/test-cases/chat_17.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0973070a70c89a4c2c12262530f71543b34542c6 GIT binary patch literal 437 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&l%y0mm<5=CUi|yFeaEt8*Op`$tiE>P&+1!W-sXC- JaBwLI0sx!4b!-3t literal 0 HcmV?d00001 diff --git a/test-cases/chat_17.txtproto b/test-cases/chat_17.txtproto new file mode 100644 index 00000000..5325ab60 --- /dev/null +++ b/test-cases/chat_17.txtproto @@ -0,0 +1,120 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + expirationTimerMs = 7514635526255804157 + id = 3 + muteUntilMs = 7916152572632902443 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_LAGOON + wallpaperPreset = WallpaperPreset.SOLID_PINK + } + } +} \ No newline at end of file diff --git a/test-cases/chat_18.binproto b/test-cases/chat_18.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0e0afab41953a95b7a756fc9b8f9cc9e86a34c78 GIT binary patch literal 423 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV t6w|P9qF5bsGLuu2Sc7vjOERn&M5Kf`m<5<57%dnb7`@mm7&*8Vga97xXdnOp literal 0 HcmV?d00001 diff --git a/test-cases/chat_18.txtproto b/test-cases/chat_18.txtproto new file mode 100644 index 00000000..1233cf25 --- /dev/null +++ b/test-cases/chat_18.txtproto @@ -0,0 +1,121 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + id = 3 + markedUnread = true + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_FLUORESCENT + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.SOLID_EGGPLANT + } + } +} \ No newline at end of file diff --git a/test-cases/chat_19.binproto b/test-cases/chat_19.binproto new file mode 100644 index 0000000000000000000000000000000000000000..afc9f7b24dd10139107b2c0dad192459a1cfc610 GIT binary patch literal 437 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&l%y0mm<5=CUVPL&{axRNwyOySyS~4^wB-Mb7sg&J I96Sob0FhsG=l}o! literal 0 HcmV?d00001 diff --git a/test-cases/chat_19.txtproto b/test-cases/chat_19.txtproto new file mode 100644 index 00000000..1626fcb8 --- /dev/null +++ b/test-cases/chat_19.txtproto @@ -0,0 +1,120 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + expirationTimerMs = 6965407815217563106 + id = 3 + muteUntilMs = 3733945861451479994 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_BASIL + wallpaperPreset = WallpaperPreset.SOLID_SILVER + } + } +} \ No newline at end of file diff --git a/test-cases/chat_20.binproto b/test-cases/chat_20.binproto new file mode 100644 index 0000000000000000000000000000000000000000..cc9e7efeb71a79206983687a1699f96635877782 GIT binary patch literal 443 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&G^Erxm<5<57&ZR>ZQrqM*|jAZ2CJ`K__O-fm$$hV Pj1G)mY!-|hyb2-!VHtKS literal 0 HcmV?d00001 diff --git a/test-cases/chat_20.txtproto b/test-cases/chat_20.txtproto new file mode 100644 index 00000000..43477d1a --- /dev/null +++ b/test-cases/chat_20.txtproto @@ -0,0 +1,123 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + expirationTimerMs = 7514635526255804157 + id = 3 + markedUnread = true + muteUntilMs = 7916152572632902443 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_SUBLIME + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.GRADIENT_SUNSET + } + } +} \ No newline at end of file diff --git a/test-cases/chat_21.binproto b/test-cases/chat_21.binproto new file mode 100644 index 0000000000000000000000000000000000000000..a02097bcc54de37040b2c34ac318d2263c8cb2cc GIT binary patch literal 417 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV n6w|P9qF5bsGLuu2Sc7vjOERn&_@sC^m<5;=7`<3H_!L9|t|4b_ literal 0 HcmV?d00001 diff --git a/test-cases/chat_21.txtproto b/test-cases/chat_21.txtproto new file mode 100644 index 00000000..f070edca --- /dev/null +++ b/test-cases/chat_21.txtproto @@ -0,0 +1,118 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 3 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_SEA + wallpaperPreset = WallpaperPreset.GRADIENT_NOIR + } + } +} \ No newline at end of file diff --git a/test-cases/chat_22.binproto b/test-cases/chat_22.binproto new file mode 100644 index 0000000000000000000000000000000000000000..326b0b12c2655d23a97c1b88f03880b158b06921 GIT binary patch literal 443 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&G^Erxm<5<57&RVsPk-09q3vpd!LIMGFD?21;)SsV PqXVNCn*}2Wzk(P5Q;l_} literal 0 HcmV?d00001 diff --git a/test-cases/chat_22.txtproto b/test-cases/chat_22.txtproto new file mode 100644 index 00000000..d7b46167 --- /dev/null +++ b/test-cases/chat_22.txtproto @@ -0,0 +1,123 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + expirationTimerMs = 6965407815217563106 + id = 3 + markedUnread = true + muteUntilMs = 3733945861451479994 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.GRADIENT_TANGERINE + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.GRADIENT_HEATMAP + } + } +} \ No newline at end of file diff --git a/test-cases/chat_23.binproto b/test-cases/chat_23.binproto new file mode 100644 index 0000000000000000000000000000000000000000..bee99aa120204cb9de139b56b1e2a56ab6ffdc38 GIT binary patch literal 437 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&l%y0mm<5=CUi|yFeaEt8*Op`$tiE>P&+1!W-sXC- Ja0qBH0sx!Mb!q?r literal 0 HcmV?d00001 diff --git a/test-cases/chat_23.txtproto b/test-cases/chat_23.txtproto new file mode 100644 index 00000000..25d0acca --- /dev/null +++ b/test-cases/chat_23.txtproto @@ -0,0 +1,120 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + expirationTimerMs = 7514635526255804157 + id = 3 + muteUntilMs = 7916152572632902443 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + customColorId = 1 + wallpaperPreset = WallpaperPreset.GRADIENT_AQUA + } + } +} \ No newline at end of file diff --git a/test-cases/chat_24.binproto b/test-cases/chat_24.binproto new file mode 100644 index 0000000000000000000000000000000000000000..06f19c04238da57a855160f5020b797c03c6ac6b GIT binary patch literal 423 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV t6w|P9qF5bsGLuu2Sc7vjOERn&M5Kf`m<5<57%dnb7`@mm7&!zrm;fICXdVCn literal 0 HcmV?d00001 diff --git a/test-cases/chat_24.txtproto b/test-cases/chat_24.txtproto new file mode 100644 index 00000000..cc4fb5d5 --- /dev/null +++ b/test-cases/chat_24.txtproto @@ -0,0 +1,121 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + id = 3 + markedUnread = true + recipientId = 2 + style = ChatStyle { + customColorId = 2 + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.GRADIENT_IRIDESCENT + } + } +} \ No newline at end of file diff --git a/test-cases/chat_25.binproto b/test-cases/chat_25.binproto new file mode 100644 index 0000000000000000000000000000000000000000..c1d0d9613967cfb54fc7bfe3763fbce9cd1b86bc GIT binary patch literal 437 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&l%y0mm<5=CUVPL&{axRNwyOySyS~4^wB-Mb7sg&J I96}n*0FiNY<^TWy literal 0 HcmV?d00001 diff --git a/test-cases/chat_25.txtproto b/test-cases/chat_25.txtproto new file mode 100644 index 00000000..1d2702e8 --- /dev/null +++ b/test-cases/chat_25.txtproto @@ -0,0 +1,120 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + expirationTimerMs = 6965407815217563106 + id = 3 + muteUntilMs = 3733945861451479994 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + customColorId = 3 + wallpaperPreset = WallpaperPreset.GRADIENT_MONSTERA + } + } +} \ No newline at end of file diff --git a/test-cases/chat_26.binproto b/test-cases/chat_26.binproto new file mode 100644 index 0000000000000000000000000000000000000000..beca7134e7b4070b7d7b11f04147332ad809244b GIT binary patch literal 443 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&G^Erxm<5<57&ZR>ZQrqM*|jAZ2CJ`K__O-fm$$hV Pj1G)mY!-|h!cq(XVGDK_ literal 0 HcmV?d00001 diff --git a/test-cases/chat_26.txtproto b/test-cases/chat_26.txtproto new file mode 100644 index 00000000..06bc85c9 --- /dev/null +++ b/test-cases/chat_26.txtproto @@ -0,0 +1,123 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + expirationTimerMs = 7514635526255804157 + id = 3 + markedUnread = true + muteUntilMs = 7916152572632902443 + recipientId = 2 + style = ChatStyle { + autoBubbleColor = AutomaticBubbleColor {} + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.GRADIENT_BLISS + } + } +} \ No newline at end of file diff --git a/test-cases/chat_27.binproto b/test-cases/chat_27.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6efe6da3ff7e1f57a7cb368e84fa91cbeacaa9ee GIT binary patch literal 417 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV n6w|P9qF5bsGLuu2Sc7vjOERn&_@sC^m<5;=7`<3HL=+eSt{-P# literal 0 HcmV?d00001 diff --git a/test-cases/chat_27.txtproto b/test-cases/chat_27.txtproto new file mode 100644 index 00000000..0f4c2624 --- /dev/null +++ b/test-cases/chat_27.txtproto @@ -0,0 +1,118 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 3 + pinnedOrder = 1 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_ULTRAMARINE + wallpaperPreset = WallpaperPreset.GRADIENT_SKY + } + } +} \ No newline at end of file diff --git a/test-cases/chat_28.binproto b/test-cases/chat_28.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b08cfc057aa0ec4749b76ec6cac6a23a8189298c GIT binary patch literal 443 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&G^Erxm<5<57&RVsPk-09q3vpd!LIMGFD?21;)SsV PqXVNCn*}3>r~(rJQ;T(( literal 0 HcmV?d00001 diff --git a/test-cases/chat_28.txtproto b/test-cases/chat_28.txtproto new file mode 100644 index 00000000..afbb7ec1 --- /dev/null +++ b/test-cases/chat_28.txtproto @@ -0,0 +1,123 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + archived = true + dontNotifyForMentionsIfMuted = true + expirationTimerMs = 6965407815217563106 + id = 3 + markedUnread = true + muteUntilMs = 3733945861451479994 + recipientId = 2 + style = ChatStyle { + bubbleColorPreset = BubbleColorPreset.SOLID_CRIMSON + dimWallpaperInDarkMode = true + wallpaperPreset = WallpaperPreset.GRADIENT_PEACH + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_00.binproto b/test-cases/chat_item_contact_message_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..47616ee6c3f081072be9c8329067e5d0d25f9c44 GIT binary patch literal 474 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@2yqvI9|0LL7I`{6BouP+;MomW#7ZKz>hB p;ZovK;Nr{lit>*PPjd-LFYxp#6yhrn4lH$b4h%0XEp>Hs1^_0!dk_Es literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_00.txtproto b/test-cases/chat_item_contact_message_00.txtproto new file mode 100644 index 00000000..28583e4c --- /dev/null +++ b/test-cases/chat_item_contact_message_00.txtproto @@ -0,0 +1,136 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + } + ] + } + incoming = IncomingMessageDetails { + dateReceived = 1702291826269 + dateServerSent = 1794124103201 + read = true + sealedSender = true + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_01.binproto b/test-cases/chat_item_contact_message_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..7eec850dede9d898efd3482b4dfaca9b17f3cbc5 GIT binary patch literal 1125 zcmaJ;e`p(Z6u)nhTd&{Nayu!DXBpR9l^R*STyklWRctOznqJfVXp&xX6z$#h@}p^b zNtT#4h*WU8iGvMs;5u<^iW`FZ_Xhr0kvUz9a|l((7@Gq{H?*Qfal};ru~U5iyw8L8 zKJW8BuN4FM+V96-+pyjS@OuC$*>L!+Tg&`N;MJ2ytry-{d1d8u{g>z2>)9LPZKV3; z8qu!kiu^=ct5o_N4$=WBEi<|IvyOLh^v2nzgyHogpK9@q1JCT*-}znVTF;%nmk3<` z5S&21;CCE2hnm+$>OY!Iw25!BSWNyVjr$=;{ctvW-fkoNPTE%99KP_PFQ(CQ^5O8R zbnWV?u~qFp!kCB+nSmfQE^r?CQ2Nn_oWLtJY^2W=4St{{t z>ztIWCIvA$#7@#MSCBK>BQr%U14EEjXzDcF${q;N`1 z55+UZ5urqM)MC-9&l?r1)vC|$CAY&itINi69LHF#3~nG1a_3!F8p-xj!8@H27gCYA zyi9k)`y*o$DLvsUCFci+l3^*O`eI_WlJ3*XnN14%f&aC|NTLt9V8$k%{EQ7AxtFnX(Yq#cC*8&xZMuWt+bq zn+@gvVX+&Q!vU#Q^Xa1_d}}JIs&!3}riHe&w^*N<2uA(UEPD#jt$+WaIG3^D*x{SM zE-{v+-|9~v|7O>n?aU(XM&q@xTpm2OBd}^5N2IP`I+%4#=&~y`B0g3N`FHDjaQ7b3 zlXU6}Fa;?mr!mfH*2>yBhGS)yjgiw1)}}hr9Ai_{{Y{VX4<22IUH#zRBZ)bsO-6LG`hC||940@~i>pSrC-Z2$lO literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_01.txtproto b/test-cases/chat_item_contact_message_01.txtproto new file mode 100644 index 00000000..49c78fae --- /dev/null +++ b/test-cases/chat_item_contact_message_01.txtproto @@ -0,0 +1,237 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + address = [ + PostalAddress { + city = "nZhuXJWXD" + street = "hyZCTrFaZqB" + type = Type.HOME + } + ] + avatar = FilePointer { + backupLocator = BackupLocator { + digest = <6b61c36c807559220985f14b0252e833> + key = <8d3cda32685e0086546218a42159dc48> + mediaName = "6b61c36c807559220985f14b0252e833" + size = 1465688382 + } + contentType = "image/jpeg" + } + email = [ + Email { + type = Type.HOME + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + } + ] + name = Name { + familyName = "CqQNEWGrAzrHY" + givenName = "SkLQGER" + } + number = [ + Phone { + type = Type.HOME + value_ = "447700900133" + } + ] + organization = "" + }, + ContactAttachment { + address = [ + PostalAddress { + city = "xnqeB" + country = "" + label = "" + neighborhood = "" + pobox = "" + postcode = "" + region = "" + street = "UUiitmkHLv" + type = Type.WORK + }, + PostalAddress { + city = "nZhuXJWXD" + country = "fCpzjVLQFQh" + label = "tAKtPVXV" + neighborhood = "FzSlNk" + pobox = "jrJToWuNQzhOBq" + postcode = "YQcczeJZd" + region = "rOHZwwEoKI" + street = "hyZCTrFaZqB" + type = Type.CUSTOM + } + ] + avatar = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <85e08d21245052a930af623c6f503cf7> + key = + mediaName = "85e08d21245052a930af623c6f503cf7" + size = 658677648 + transitCdnKey = "NeUzkxb" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "TwOar" + height = 462 + incrementalMac = <0891e5f69b302a9bf97a7ea0e423fd11> + incrementalMacChunkSize = 2048 + width = 2972 + } + email = [ + Email { + label = "" + type = Type.MOBILE + value_ = "PMVYoUEqXx@DXOZYcESWutf.org" + }, + Email { + label = "tWAZn" + type = Type.WORK + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + } + ] + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + number = [ + Phone { + label = "" + type = Type.MOBILE + value_ = "19325550110" + }, + Phone { + label = "qmCdYWyYPnka" + type = Type.WORK + value_ = "447700900133" + } + ] + organization = "pKBuwAHesX" + } + ] + } + dateSent = 1680366577838 + incoming = IncomingMessageDetails { + dateReceived = 1702291826270 + dateServerSent = 1794124103202 + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_02.binproto b/test-cases/chat_item_contact_message_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..ec40750fac18ec2d024c01dd3760c99c02c67e4b GIT binary patch literal 644 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@31BsPv2x$Y7LMcwlDFBttJYE*1_JDTbsA zj9h0Kxg@yQgR^}C-Ccu(c%2Ia{anM{iyW(pJR*%2Fe-6o<|d}6>ZfO>S#hLRRyZX` zR-`!mXY=R~4dRIOPfM%HE)R&3@o{(8O4HHJ)XUM$w|7^mvyUnUqFf&gwFi5maGB+|awM;fJNi;P#G)+xQGchnu5nz@Q=-Xj0cl=tAbeYPk-~E!; zEKC>HfdIkp;cqgSqd0H@8@l{rOCsif-`WE>4 I1b7Dm0G>v$Q2+n{ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_02.txtproto b/test-cases/chat_item_contact_message_02.txtproto new file mode 100644 index 00000000..d0cf8093 --- /dev/null +++ b/test-cases/chat_item_contact_message_02.txtproto @@ -0,0 +1,157 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + avatar = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <14d067b00a9b72659c04a5715eff403d> + key = <8eb83f1ec7d6521b7624aafb8f19d75e> + mediaName = "14d067b00a9b72659c04a5715eff403d" + size = 2122135182 + transitCdnKey = "ISQpKbdZI" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "YOffzkwP" + contentType = "image/gif" + fileName = "eyxBcYxd" + height = 2696 + width = 895 + } + name = Name { + familyName = "CqQNEWGrAzrHY" + givenName = "SkLQGER" + } + organization = "yyKbzaMMpNLPKQ" + } + ] + } + dateSent = 1688484601889 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + pending = Pending {} + recipientId = 4 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_03.binproto b/test-cases/chat_item_contact_message_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..8ccdbf134e32e6fb9f92b239971e484d180a235c GIT binary patch literal 1076 zcmaKoeP|nH9LMiTa_i+uTW>d_@f?!gI+@YM%X=F^+RNqbmMlq=G|5qPm*n!+CYNNn zyfMebKU_s&V>;N%aIDM;8`FPOa40wx8KYxNgvy4_PK7cZGH^qoi>crrRq^-F^LgO= z`|{(X#sI$j$H}+uo9+O38$i9FIDGb(<b&#Nu(&rPE8tmaa*^y<%P|+)CU*(?NBe~XZBtleh)`)UD(HY?;gD@#_rF*wC$jFRl7X8W;{aR!l&RA z@-_3w{6$o^?C<`nQ&B3W-(paC`Zdlcq5kI!g)glZ(zs|@I^(_cnmZ~|Lh`B575?V8 z?*y-ij}ppwl+^)_>z@mBKo52R8jKy<$^d}@X$E9`APkaV4=8{tXoCX)90ZEvU;qPJ z1VMW1r07%cFH&le9@5)Hs4!qa)*po#d4d?ll$0Lg{rH9<2O$>h=%Wp(-q9)3#2!pV z%={|`h<`3B^lz@*=snBnH?;l7hes#piWxDDM$5%U!HH}l`v>8wV<>eL?E~N*fm=W4`oD;kmAu1G?bWw*ygJ`6Rcaf{hz zv(Y9KjjKr1&-h$CwG%!T4o;_}xVx5YPq4`lpUSwS3AvFoO7(m{H|TBq*wU^FQ>>Q4 zh8YYHno=n(XQw-CC*LMvJYFm|%Co*elNypMZnrR5@k|Bk&8`8R%eLz!Gup1yM8=7A zQsD}l2{DX1ldm*qWjPh+h6FJvGu>n^7Hs;`=9dAb7UXPEdZt{p7;x~ z{U?9ewzio*fKQwl@O`hD((uhffQ`CJ)7~)L4fPI(WsJ6&O%}U3n_g#AHs{D%$L$%B z7IGE=M@amudu!R1*LAcU{HP`=i2+hm=Si%3u8Xuf(O4@a)cLIeZt7{fT{P}@wdL&rDG=NjHE*{h5`JlK znXp2PtxgBn1}jteb?tLE=1)Bsc>9`l%LjGcWdr_&Fuvud^KYz1Dx=SzJM(#&zJBiN It4b&GC+WH}F#rGn literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_03.txtproto b/test-cases/chat_item_contact_message_03.txtproto new file mode 100644 index 00000000..4b5e83fe --- /dev/null +++ b/test-cases/chat_item_contact_message_03.txtproto @@ -0,0 +1,240 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + address = [ + PostalAddress { + city = "xnqeB" + country = "aeMuBzXfTMvHb" + label = "jjbudVyDygx" + neighborhood = "ldxrj" + pobox = "unEEaAnFRLrvz" + postcode = "cgnvkuuYU" + region = "yYPnDcOB" + street = "UUiitmkHLv" + type = Type.HOME + } + ] + avatar = FilePointer { + backupLocator = BackupLocator { + digest = <77380521362db73801df7d496ce0af3a> + key = + mediaName = "77380521362db73801df7d496ce0af3a" + size = 1465688382 + } + caption = "ZvhLDSCjVGP" + contentType = "audio/mp3" + height = 1505 + incrementalMac = <0891e5f69b302a9bf97a7ea0e423fd11> + incrementalMacChunkSize = 2048 + width = 925 + } + email = [ + Email { + label = "GxHDjKnBipjP" + type = Type.CUSTOM + value_ = "PMVYoUEqXx@DXOZYcESWutf.org" + } + ] + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + number = [ + Phone { + label = "IBHCZ" + type = Type.CUSTOM + value_ = "19325550110" + } + ] + }, + ContactAttachment { + address = [ + PostalAddress { + city = "nZhuXJWXD" + street = "hyZCTrFaZqB" + type = Type.HOME + }, + PostalAddress { + city = "xnqeB" + country = "" + label = "" + neighborhood = "" + pobox = "" + postcode = "" + region = "" + street = "UUiitmkHLv" + type = Type.WORK + } + ] + avatar = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "DpVLDtDu" + digest = + key = + size = 827594331 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "TwOar" + } + email = [ + Email { + type = Type.HOME + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + }, + Email { + label = "" + type = Type.MOBILE + value_ = "PMVYoUEqXx@DXOZYcESWutf.org" + } + ] + name = Name { + familyName = "CqQNEWGrAzrHY" + givenName = "SkLQGER" + } + number = [ + Phone { + type = Type.HOME + value_ = "447700900133" + }, + Phone { + label = "" + type = Type.MOBILE + value_ = "19325550110" + } + ] + organization = "" + } + ] + } + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent { + sealedSender = true + } + timestamp = 1833527071192 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_04.binproto b/test-cases/chat_item_contact_message_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..84c98b1ef07b9b989274423cede7aca95941342e GIT binary patch literal 636 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@31AsC17J$Y7LMcX7_!&jwz+T-+Qi0_*3V zTDsa$i6QAABiBA)baC-zdPVt1hNroNq!)O46$ + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + avatar = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "RIdlg" + cdnNumber = 2 + digest = <593932b06551b2e2890f59e14a0cef78> + key = <6d8b5d468bdd8b16ebceb4fa96febac7> + size = 1235219109 + uploadTimestamp = 1815031729274 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/jpeg" + fileName = "eyxBcYxd" + height = 462 + incrementalMac = <0891e5f69b302a9bf97a7ea0e423fd11> + incrementalMacChunkSize = 2048 + width = 2972 + } + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + organization = "pKBuwAHesX" + } + ] + } + dateSent = 1680366577838 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent {} + timestamp = 1695248715439 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_05.binproto b/test-cases/chat_item_contact_message_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..eca780c030f8c2b0280cea9602189098ef2bf68c GIT binary patch literal 1116 zcmaJ;TZkKF7@a@K?9NVhmvJDP&Xy9URdi%ylD)K>B5o#=WHOoDHkV0;1$UB6uA58} zGr0_+^~o*t!Fq$XtX4~FrC@y$p&+*2D6&NaC8Cwu>Vs8_idvK|G3$$N6~CA7d~m+Q z;hZr9VEsRizj)Jr1EAjl)FSB)pZVb(+Rv_^IBLIma^uLx$I7oyI<6M42{$11vpzna zQ8LoQdAZfH&d(F`s6{R;Kl0J!>ll3P+@qZD=jT6^<2MgJv3t$*t*O6f)A|gKN$0`K z&?od=2QR?pzF+&%Y#xgiw=<-D^;a}{6M`{SR9P7Yo;Y69nR;qN+*Ip zh$2iq$uliR#q{RQTi0KGVV1u(S5-JJv_}Umjn+^4^)# zZ@z20(Es!`gLAUi3uH7Y7_5i*NFa*-q(d#}WQh~QX(7+V3w1x&z$ZJgsOoV?1yxl& zUN>$fUwzI_rrEYAbJ5 znuX!#xUb7Ho&^{xLa$;v=iAXmC1%_dMsP0wJWNcPH+>F98_s7m5&G8Y=$Bbu&uv; z^z?TJg;Jivki*~ncFaZ{`(1nN_}9BP@30-foN&AomYR#}qwH74C8O9b@=VNKPWmF^ gPCm~U=aY)G5b_HTbwb{0Md7FS3$D~YrAI)20%aFOUjP6A literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_05.txtproto b/test-cases/chat_item_contact_message_05.txtproto new file mode 100644 index 00000000..19c69995 --- /dev/null +++ b/test-cases/chat_item_contact_message_05.txtproto @@ -0,0 +1,240 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + address = [ + PostalAddress { + city = "nZhuXJWXD" + country = "fCpzjVLQFQh" + label = "tAKtPVXV" + neighborhood = "FzSlNk" + pobox = "jrJToWuNQzhOBq" + postcode = "YQcczeJZd" + region = "rOHZwwEoKI" + street = "hyZCTrFaZqB" + type = Type.CUSTOM + } + ] + avatar = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "DpVLDtDu" + cdnNumber = 3 + digest = + key = <6570c694db1bb6ddd81bfc351add5a15> + size = 1171631170 + uploadTimestamp = 1794847194749 + } + caption = "YOffzkwP" + contentType = "image/png" + height = 2696 + width = 895 + } + email = [ + Email { + label = "tWAZn" + type = Type.WORK + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + } + ] + name = Name { + familyName = "CqQNEWGrAzrHY" + givenName = "SkLQGER" + } + number = [ + Phone { + label = "qmCdYWyYPnka" + type = Type.WORK + value_ = "447700900133" + } + ] + organization = "yyKbzaMMpNLPKQ" + }, + ContactAttachment { + address = [ + PostalAddress { + city = "xnqeB" + country = "aeMuBzXfTMvHb" + label = "jjbudVyDygx" + neighborhood = "ldxrj" + pobox = "unEEaAnFRLrvz" + postcode = "cgnvkuuYU" + region = "yYPnDcOB" + street = "UUiitmkHLv" + type = Type.HOME + }, + PostalAddress { + city = "nZhuXJWXD" + street = "hyZCTrFaZqB" + type = Type.HOME + } + ] + avatar = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "ZvhLDSCjVGP" + contentType = "image/gif" + fileName = "TwOar" + height = 1505 + incrementalMac = <0891e5f69b302a9bf97a7ea0e423fd11> + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 925 + } + email = [ + Email { + label = "GxHDjKnBipjP" + type = Type.CUSTOM + value_ = "PMVYoUEqXx@DXOZYcESWutf.org" + }, + Email { + type = Type.HOME + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + } + ] + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + number = [ + Phone { + label = "IBHCZ" + type = Type.CUSTOM + value_ = "19325550110" + }, + Phone { + type = Type.HOME + value_ = "447700900133" + } + ] + } + ] + } + dateSent = 1688484601889 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 4 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_06.binproto b/test-cases/chat_item_contact_message_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..33580d0f20df9930ceac420fa1ee04316874155c GIT binary patch literal 469 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4}bvIJ6$Uc6k~94rDi7Qf!Q&QyybNrg*^ mOM#0o(<{n9GCa*CB)!1Xt5ArqJUFn_)j2S{w6xUK%^3hX*mmmx literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_06.txtproto b/test-cases/chat_item_contact_message_06.txtproto new file mode 100644 index 00000000..be5985ed --- /dev/null +++ b/test-cases/chat_item_contact_message_06.txtproto @@ -0,0 +1,139 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + } + ] + } + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered {} + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_07.binproto b/test-cases/chat_item_contact_message_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..29491f238b9a5b438236be7693477a321344d140 GIT binary patch literal 1126 zcmaJ;Z)h8J7{1>n*Is|^>g}W~o@HEboz%$c<I%I4P6y4B@7KKq${bHy1etDl4 z-uHQ*_jy}zK&|VNJpg|IkXFz`=k8t>MgqrA9pF&x^yWhp*}Jwf!&d*w^uW$4dA8-q%P% z`4GH?d?9Sxe+jd!jMRU!m>ILsV6mG04I203kpA&v_M<*K)qB#u^!D)8SA8*^QIb!D zm*tz^oEclzA0bVN*pLN?VnZ&l02=fF7B~-f3P2HnDgZ42A|MH-Ko%6iJXi!^A3%?Q zW*l@N2(rF`&<0xn3z<5Qb!5GXG~>XEY$TLJ9wWPP6GKCy(Y`6DHi(Zc(6Ne9Ua*){ zatb$-lmBW1$^pI6Wf0jGUl1hX}XHV3b{(wjWkgWL4^4l#$3S~09fAn z?AYC3Sn(ma1veAtkAHmnoQ*?qpq|Cx6#y-;IhGGbhkfJZ7H=sU@=3#GPrV#SQ3P!3 z>+A1lSr^ON>~;b$+aXm_w0g}yT@M5Yjr^D#Da_PLaj{o33IwoHIG|dy3$iy}_A7Ep z;9BP7Y&9uL$sul%fw_W`(Vv_t>KPb5foG6D= zQhF$!DUOIGvb`3IR(;;6RIOHhelN8Zw%S~Fj^}ySW@8DILa6NzTxp`(N(Jw9N?J%o z=JE>D1s{!!O{9#3uaul097=}el;(>`)k?b8C}%b(n4SM?i;2Q2l1HAicHt4JpDXEt8xar@u}7GPTF-`slC{ZS zkIjbi|FGB%%i(}rtND!45uqg&)wH@U%F|+N+FPv8Oa!C;XqGzzn3li)P@KzH3H;EV z-;T1@qrcZ*IPvX{`&-#X!i~jiVWm8HY+GR2G>*uf!E`X|m@pJqXheFt7V_^hjNq=_ zk|*gj7GMg}PF`o7)0~a#<5`|lTy|DTJ2<=MNb{^+OZPWCB0hL(6?XQ6hYu&NqnSIO xTxW>AHxG1mN5;>x=hXotGO*Tj@cmaVpj>lEPt^1CsuOX;;;2xqc>?;L + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + address = [ + PostalAddress { + city = "nZhuXJWXD" + street = "hyZCTrFaZqB" + type = Type.HOME + } + ] + avatar = FilePointer { + backupLocator = BackupLocator { + digest = <6b61c36c807559220985f14b0252e833> + key = <8d3cda32685e0086546218a42159dc48> + mediaName = "6b61c36c807559220985f14b0252e833" + size = 1465688382 + } + contentType = "image/jpeg" + } + email = [ + Email { + type = Type.HOME + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + } + ] + name = Name { + familyName = "CqQNEWGrAzrHY" + givenName = "SkLQGER" + } + number = [ + Phone { + type = Type.HOME + value_ = "447700900133" + } + ] + organization = "" + }, + ContactAttachment { + address = [ + PostalAddress { + city = "xnqeB" + country = "" + label = "" + neighborhood = "" + pobox = "" + postcode = "" + region = "" + street = "UUiitmkHLv" + type = Type.WORK + }, + PostalAddress { + city = "nZhuXJWXD" + country = "fCpzjVLQFQh" + label = "tAKtPVXV" + neighborhood = "FzSlNk" + pobox = "jrJToWuNQzhOBq" + postcode = "YQcczeJZd" + region = "rOHZwwEoKI" + street = "hyZCTrFaZqB" + type = Type.CUSTOM + } + ] + avatar = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <85e08d21245052a930af623c6f503cf7> + key = + mediaName = "85e08d21245052a930af623c6f503cf7" + size = 658677648 + transitCdnKey = "NeUzkxb" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "TwOar" + height = 462 + incrementalMac = <0891e5f69b302a9bf97a7ea0e423fd11> + incrementalMacChunkSize = 2048 + width = 2972 + } + email = [ + Email { + label = "" + type = Type.MOBILE + value_ = "PMVYoUEqXx@DXOZYcESWutf.org" + }, + Email { + label = "tWAZn" + type = Type.WORK + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + } + ] + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + number = [ + Phone { + label = "" + type = Type.MOBILE + value_ = "19325550110" + }, + Phone { + label = "qmCdYWyYPnka" + type = Type.WORK + value_ = "447700900133" + } + ] + organization = "pKBuwAHesX" + } + ] + } + dateSent = 1680366577838 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_08.binproto b/test-cases/chat_item_contact_message_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..399d4906afddffd1375c7527705714bc3b0e8be6 GIT binary patch literal 644 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@31BsPv2x$Y7LMcwlDFBttJYE*1_JBZj04 zj9h0Kxg@yQgR^}C-Ccu(c%2Ia{anM{iyW(pJR*%2Fe-6o<|d}6>ZfO>S#hLRRyZX` zR-`!mXY=R~4dRIOPfM%HE)R&3@o{(8O4HHJ)XUM$w|7^mvyUnUqFf&gwFi5maGB+|awM;fJNi;P#G)+xQGchnu5nz@Q=-Xj0cl=tAbeYPk-~E!; zEKC>HfdIkp;cqgSqd0H@8@l{rOCsif-`WE>4 I1b7Dm0J1)?X#fBK literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_08.txtproto b/test-cases/chat_item_contact_message_08.txtproto new file mode 100644 index 00000000..54ef1179 --- /dev/null +++ b/test-cases/chat_item_contact_message_08.txtproto @@ -0,0 +1,157 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + avatar = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <14d067b00a9b72659c04a5715eff403d> + key = <8eb83f1ec7d6521b7624aafb8f19d75e> + mediaName = "14d067b00a9b72659c04a5715eff403d" + size = 2122135182 + transitCdnKey = "ISQpKbdZI" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "YOffzkwP" + contentType = "image/gif" + fileName = "eyxBcYxd" + height = 2696 + width = 895 + } + name = Name { + familyName = "CqQNEWGrAzrHY" + givenName = "SkLQGER" + } + organization = "yyKbzaMMpNLPKQ" + } + ] + } + dateSent = 1688484601889 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read {} + recipientId = 4 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_09.binproto b/test-cases/chat_item_contact_message_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..444a9d8133e25c2dd7e2022e01e24b53badd4134 GIT binary patch literal 1076 zcmaKoeP|nH9LMiTa_i+uTW>d_@f?!gI+@YM%X=F^+RNqbmMlq=G|5qPm*n!+CYNNn zyfMebKU_s&V>;N%aIDM;8`FPOa40wx8KYxNgvy4_PK7cZGH^qoi>crrRq^-F^LgO= z`|{(X#sI$j$H}+uo9+O38$i9FIDGb(<b&#Nu(&rPE8tmaa*^y<%P|+)CU*(?NBe~XZBtleh)`)UD(HY?;gD@#_rF*wC$jFRl7X8W;{aR!l&RA z@-_3w{6$o^?C<`nQ&B3W-(paC`Zdlcq5kI!g)glZ(zs|@I^(_cnmZ~|Lh`B575?V8 z?*y-ij}ppwl+^)_>z@mBKo52R8jKy<$^d}@X$E9`APkaV4=8{tXoCX)90ZEvU;qPJ z1VMW1r07%cFH&le9@5)Hs4!qa)*po#d4d?ll$0Lg{rH9<2O$>h=%Wp(-q9)3#2!pV z%={|`h<`3B^lz@*=snBnH?;l7hes#piWxDDM$5%U!HH}l`v>8wV<>eL?E~N*fCp>;})~c zW}{6e8ds61pYgePYA1Xw9Gp%`ad$1*o?w$9K9zAt6LKSGlR&}xmsTVv>medmW`;JX+7b2s00?)c>5-H%XsRsnTz zAUYd}c->RPkgFEi?M`^>lij*6MdEPKYIQhhdYqd9e zGGT=nTb&ND4OXV`>)PjT%%6HN@b)$9mJjN>%Le=lVSLL^=igY3R7Rgacjoglef`|k ISCvlWPbNV!NdN!< literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_09.txtproto b/test-cases/chat_item_contact_message_09.txtproto new file mode 100644 index 00000000..d7b4881c --- /dev/null +++ b/test-cases/chat_item_contact_message_09.txtproto @@ -0,0 +1,240 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + address = [ + PostalAddress { + city = "xnqeB" + country = "aeMuBzXfTMvHb" + label = "jjbudVyDygx" + neighborhood = "ldxrj" + pobox = "unEEaAnFRLrvz" + postcode = "cgnvkuuYU" + region = "yYPnDcOB" + street = "UUiitmkHLv" + type = Type.HOME + } + ] + avatar = FilePointer { + backupLocator = BackupLocator { + digest = <77380521362db73801df7d496ce0af3a> + key = + mediaName = "77380521362db73801df7d496ce0af3a" + size = 1465688382 + } + caption = "ZvhLDSCjVGP" + contentType = "audio/mp3" + height = 1505 + incrementalMac = <0891e5f69b302a9bf97a7ea0e423fd11> + incrementalMacChunkSize = 2048 + width = 925 + } + email = [ + Email { + label = "GxHDjKnBipjP" + type = Type.CUSTOM + value_ = "PMVYoUEqXx@DXOZYcESWutf.org" + } + ] + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + number = [ + Phone { + label = "IBHCZ" + type = Type.CUSTOM + value_ = "19325550110" + } + ] + }, + ContactAttachment { + address = [ + PostalAddress { + city = "nZhuXJWXD" + street = "hyZCTrFaZqB" + type = Type.HOME + }, + PostalAddress { + city = "xnqeB" + country = "" + label = "" + neighborhood = "" + pobox = "" + postcode = "" + region = "" + street = "UUiitmkHLv" + type = Type.WORK + } + ] + avatar = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "DpVLDtDu" + digest = + key = + size = 827594331 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "TwOar" + } + email = [ + Email { + type = Type.HOME + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + }, + Email { + label = "" + type = Type.MOBILE + value_ = "PMVYoUEqXx@DXOZYcESWutf.org" + } + ] + name = Name { + familyName = "CqQNEWGrAzrHY" + givenName = "SkLQGER" + } + number = [ + Phone { + type = Type.HOME + value_ = "447700900133" + }, + Phone { + label = "" + type = Type.MOBILE + value_ = "19325550110" + } + ] + organization = "" + } + ] + } + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1833527071192 + viewed = Viewed { + sealedSender = true + } + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_10.binproto b/test-cases/chat_item_contact_message_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e6a86223d8e5dfd5750f655e47e910f02b5e28dd GIT binary patch literal 636 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@31AsC17J$Y7LMcX7_!&jwz+T-+Qi0_*3V zTDscMiXrJBBiBA)baC-zdPVt1hNroNq!)O46$ + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + avatar = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "RIdlg" + cdnNumber = 2 + digest = <593932b06551b2e2890f59e14a0cef78> + key = <6d8b5d468bdd8b16ebceb4fa96febac7> + size = 1235219109 + uploadTimestamp = 1815031729274 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/jpeg" + fileName = "eyxBcYxd" + height = 462 + incrementalMac = <0891e5f69b302a9bf97a7ea0e423fd11> + incrementalMacChunkSize = 2048 + width = 2972 + } + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + organization = "pKBuwAHesX" + } + ] + } + dateSent = 1680366577838 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1695248715439 + viewed = Viewed {} + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_11.binproto b/test-cases/chat_item_contact_message_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..9eaa5ce07018520b64608d7de078cc454490598d GIT binary patch literal 1114 zcmaJ;TZkKF7@a@K>`o@xFb+i1*;2x^ibi%#vX^#K#LZ-qOeT}t<}%5!;7*dsb(2YA zCYM39KDmWHSZ~ml)oN+26s%7oR8Z@UB3ndIB3h}fK3KJ=s72`#v%ct7@q78s2j@E+ z&e08Ef^d>gz7 zeL~%F@H}i81k@ibI#NfCRBSrmNXB&!YW@CP>4VuBV*13)#!LPShrDr#6w~)cE(({w zJRQ0y?ZCCkIBfweJF*KbzzXgLcChb>ofHr$kflJ50a1_!E1(1#pa%{Bum&_o!8iiU z5CjdkkYCOhTFVbsM}T$EsnI^ z!FDv2P7#JuU+^SaK2c~=q^Z(k6Ed%aV`?cvHEm-)HNG0II`ws-q@-CsO}o%mgb})3 zuN(|e`b;dBQzcf&vxb7Fp;l5{%oi&;1yWzGiACwYM!mQ=9AnnZOGqYCD5%wL6u%!u z=thd8+q8mdEt@y5z5LuPiAjz3pZLbU$-o1I7{Q%~I6Wxf|T3jDzzA`KsgieX0&9~E|T e1+FxolEsB^fPbJH_D#t$H?^O4r}xQy0{Rn~Hbi6q literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_11.txtproto b/test-cases/chat_item_contact_message_11.txtproto new file mode 100644 index 00000000..31b12c3b --- /dev/null +++ b/test-cases/chat_item_contact_message_11.txtproto @@ -0,0 +1,238 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + address = [ + PostalAddress { + city = "nZhuXJWXD" + country = "fCpzjVLQFQh" + label = "tAKtPVXV" + neighborhood = "FzSlNk" + pobox = "jrJToWuNQzhOBq" + postcode = "YQcczeJZd" + region = "rOHZwwEoKI" + street = "hyZCTrFaZqB" + type = Type.CUSTOM + } + ] + avatar = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "DpVLDtDu" + cdnNumber = 3 + digest = + key = <6570c694db1bb6ddd81bfc351add5a15> + size = 1171631170 + uploadTimestamp = 1794847194749 + } + caption = "YOffzkwP" + contentType = "image/png" + height = 2696 + width = 895 + } + email = [ + Email { + label = "tWAZn" + type = Type.WORK + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + } + ] + name = Name { + familyName = "CqQNEWGrAzrHY" + givenName = "SkLQGER" + } + number = [ + Phone { + label = "qmCdYWyYPnka" + type = Type.WORK + value_ = "447700900133" + } + ] + organization = "yyKbzaMMpNLPKQ" + }, + ContactAttachment { + address = [ + PostalAddress { + city = "xnqeB" + country = "aeMuBzXfTMvHb" + label = "jjbudVyDygx" + neighborhood = "ldxrj" + pobox = "unEEaAnFRLrvz" + postcode = "cgnvkuuYU" + region = "yYPnDcOB" + street = "UUiitmkHLv" + type = Type.HOME + }, + PostalAddress { + city = "nZhuXJWXD" + street = "hyZCTrFaZqB" + type = Type.HOME + } + ] + avatar = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "ZvhLDSCjVGP" + contentType = "image/gif" + fileName = "TwOar" + height = 1505 + incrementalMac = <0891e5f69b302a9bf97a7ea0e423fd11> + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 925 + } + email = [ + Email { + label = "GxHDjKnBipjP" + type = Type.CUSTOM + value_ = "PMVYoUEqXx@DXOZYcESWutf.org" + }, + Email { + type = Type.HOME + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + } + ] + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + number = [ + Phone { + label = "IBHCZ" + type = Type.CUSTOM + value_ = "19325550110" + }, + Phone { + type = Type.HOME + value_ = "447700900133" + } + ] + } + ] + } + dateSent = 1688484601889 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + skipped = Skipped {} + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_12.binproto b/test-cases/chat_item_contact_message_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..9a80386a861812d1dbc9bdc8b610a847afa68f11 GIT binary patch literal 469 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4}bvIJ6$Uc6k~94rDi7Qf!Q&eV$`Nrg*^ mOM#0o(<{n9GCa*CB)!1Xt5ArqJUFn_)j2S{w6xUK%^3hc*mny6 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_12.txtproto b/test-cases/chat_item_contact_message_12.txtproto new file mode 100644 index 00000000..c4dac2e7 --- /dev/null +++ b/test-cases/chat_item_contact_message_12.txtproto @@ -0,0 +1,141 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + } + ] + } + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_13.binproto b/test-cases/chat_item_contact_message_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..db450bf181e3c8be6e63d5a0090e45577142e6fb GIT binary patch literal 1126 zcmaJ;Z)h8J7{1>n*Is|^>g}W~o@HEboz%$c<I%I4P6y4B@7KKq${bHy1etDl4 z-uHQ*_jy}zK&|VNJpg|IkXFz`=k8t>MgqrA9pF&x^yWhp*}Jwf!&d*w^uW$4dA8-q%P% z`4GH?d?9Sxe+jd!jMRU!m>ILsV6mG04I203kpA&v_M<*K)qB#u^!D)8SA8*^QIb!D zm*tz^oEclzA0bVN*pLN?VnZ&l02=fF7B~-f3P2HnDgZ42A|MH-Ko%6iJXi!^A3%?Q zW*l@N2(rF`&<0xn3z<5Qb!5GXG~>XEY$TLJ9wWPP6GKCy(Y`6DHi(Zc(6Ne9Ua*){ zatb$-lmBW1$^pI6Wf0jGUl1hX}XHV3b{(wjWkgWL4^4l#$3S~09fAn z?AYC3Sn(ma1veAtkAHmnoJ~Y=pq|Cx6#y-;IhGGbhkfJZ7H=sU@=3#GPrV#SQ3P!3 z>+A1lSr^ON>~;b$+aXm_w0g}yT@M5Yjr^D#Da_PLaj{o33IwoHIG|dy3$iy}_A7Ep z;9BP7Y&9uL$sul%fw_W`(Vv_t>KPb5foG6D= zQhF$!DUOIGvb`3IR(;;6RIOHhelN8Zw%S~Fj^}ySW@8DILa6NzTxp`(N(Jw9N?J%o z=JE>D1s{!!O{9#3uaul097=}el;(>`)k?b8C}%b(n4SM?i;2Q2l1HAicHt4JpDXEt8xar@u}7GPTF-`slC{ZS zkIjbi|FGB%%i(}rtND!45uqg&)wH@U%F|+N+FPv8Oa!C;XqGzzn3li)P@KzH3H;EV z-;T1@qrcZ*IPvX{`&-#X!i~jiVWm8HY+GR2G>*uf!E`X|m@pJqXheFt7V_^hjNq=_ zk|*gj7GMg}PF`o7)0~a#<5`|lTy|DTJ2<=MNb{^+OZPWCB0hL(6?XQ6hYu&NqnSIO xTxW>AHxG1mN5;>x=hXotGO*Tj@cmaVpj>lEPt^1CsuOX;;;2xqc>?;L + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + address = [ + PostalAddress { + city = "nZhuXJWXD" + street = "hyZCTrFaZqB" + type = Type.HOME + } + ] + avatar = FilePointer { + backupLocator = BackupLocator { + digest = <6b61c36c807559220985f14b0252e833> + key = <8d3cda32685e0086546218a42159dc48> + mediaName = "6b61c36c807559220985f14b0252e833" + size = 1465688382 + } + contentType = "image/jpeg" + } + email = [ + Email { + type = Type.HOME + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + } + ] + name = Name { + familyName = "CqQNEWGrAzrHY" + givenName = "SkLQGER" + } + number = [ + Phone { + type = Type.HOME + value_ = "447700900133" + } + ] + organization = "" + }, + ContactAttachment { + address = [ + PostalAddress { + city = "xnqeB" + country = "" + label = "" + neighborhood = "" + pobox = "" + postcode = "" + region = "" + street = "UUiitmkHLv" + type = Type.WORK + }, + PostalAddress { + city = "nZhuXJWXD" + country = "fCpzjVLQFQh" + label = "tAKtPVXV" + neighborhood = "FzSlNk" + pobox = "jrJToWuNQzhOBq" + postcode = "YQcczeJZd" + region = "rOHZwwEoKI" + street = "hyZCTrFaZqB" + type = Type.CUSTOM + } + ] + avatar = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <85e08d21245052a930af623c6f503cf7> + key = + mediaName = "85e08d21245052a930af623c6f503cf7" + size = 658677648 + transitCdnKey = "NeUzkxb" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "TwOar" + height = 462 + incrementalMac = <0891e5f69b302a9bf97a7ea0e423fd11> + incrementalMacChunkSize = 2048 + width = 2972 + } + email = [ + Email { + label = "" + type = Type.MOBILE + value_ = "PMVYoUEqXx@DXOZYcESWutf.org" + }, + Email { + label = "tWAZn" + type = Type.WORK + value_ = "qaczwFdzHL@okMZPmjwqTJ.com" + } + ] + name = Name { + familyName = "wSQuECQWuuuEFC" + givenName = "iJZOYWfDTgpIJq" + } + number = [ + Phone { + label = "" + type = Type.MOBILE + value_ = "19325550110" + }, + Phone { + label = "qmCdYWyYPnka" + type = Type.WORK + value_ = "447700900133" + } + ] + organization = "pKBuwAHesX" + } + ] + } + dateSent = 1680366577838 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_contact_message_14.binproto b/test-cases/chat_item_contact_message_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..956b0cadc198a8529b3729a2fd7fc6b9fb04f850 GIT binary patch literal 646 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@31FsPuvn$Y7LMcwlDFBttI_E;bGpFD4GA zqzjB(XBoL9xY&cUeFEKGgM@gU3j_UJ!`+J;Nii@pPckq_v`jKLGBdSIHZVyvH8(U(O-nN|FisI*mJ;aOVJ~<5T99;^%BtV} zlGo#u1Vk>RZ{V6;lsboHX<^)d2V0H4w_iT98*zFD2NrlIr9^pJFj?_cR(dB@CHndn K`1u5Q2Lb@F>9Cam literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_contact_message_14.txtproto b/test-cases/chat_item_contact_message_14.txtproto new file mode 100644 index 00000000..17cfb2b0 --- /dev/null +++ b/test-cases/chat_item_contact_message_14.txtproto @@ -0,0 +1,159 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + avatar = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <14d067b00a9b72659c04a5715eff403d> + key = <8eb83f1ec7d6521b7624aafb8f19d75e> + mediaName = "14d067b00a9b72659c04a5715eff403d" + size = 2122135182 + transitCdnKey = "ISQpKbdZI" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "YOffzkwP" + contentType = "image/gif" + fileName = "eyxBcYxd" + height = 2696 + width = 895 + } + name = Name { + familyName = "CqQNEWGrAzrHY" + givenName = "SkLQGER" + } + organization = "yyKbzaMMpNLPKQ" + } + ] + } + dateSent = 1688484601889 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 4 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_expiration_timer_update_00.binproto b/test-cases/chat_item_expiration_timer_update_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..1dbd021dc31bd650a378422dfba659f588c02e5f GIT binary patch literal 422 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV q6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6v`;sR2PK@3$)QVamHy=UJ5 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_expiration_timer_update_00.txtproto b/test-cases/chat_item_expiration_timer_update_00.txtproto new file mode 100644 index 00000000..007e4aff --- /dev/null +++ b/test-cases/chat_item_expiration_timer_update_00.txtproto @@ -0,0 +1,124 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + expirationTimerChange = ExpirationTimerChatUpdate {} + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_expiration_timer_update_01.binproto b/test-cases/chat_item_expiration_timer_update_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b7efde734c5c9440e509cb369983f9d9a32e01c9 GIT binary patch literal 439 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;4k_J%{Hx|F%y3RC+p^8U}i{ta}8T%Jb Iy1y<201R+)j{pDw literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_expiration_timer_update_01.txtproto b/test-cases/chat_item_expiration_timer_update_01.txtproto new file mode 100644 index 00000000..538fa3df --- /dev/null +++ b/test-cases/chat_item_expiration_timer_update_01.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + expirationTimerChange = ExpirationTimerChatUpdate { + expiresInMs = 6079152038928072179 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_expiration_timer_update_02.binproto b/test-cases/chat_item_expiration_timer_update_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3138ee6dad171daa4f61b76d557733cc15b4a43d GIT binary patch literal 439 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;4k_J+Y66@!lTDsaWh@px{ii_j>i-QMe JetqA>2ml3!axDM= literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_expiration_timer_update_02.txtproto b/test-cases/chat_item_expiration_timer_update_02.txtproto new file mode 100644 index 00000000..60d9f36e --- /dev/null +++ b/test-cases/chat_item_expiration_timer_update_02.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1695248715439 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + expirationTimerChange = ExpirationTimerChatUpdate { + expiresInMs = 73675704045171831 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_group_call_update_00.binproto b/test-cases/chat_item_group_call_update_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0648cf7adcfa1c9da0c31b6c057d8902f8f8b04c GIT binary patch literal 812 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ s;b0cvQc+R@Qj8Ke7Qf!Q&NPUjO4vz|g8?YO0!(W2*DqOd!N`IU0H3y((EtDd literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_group_call_update_00.txtproto b/test-cases/chat_item_group_call_update_00.txtproto new file mode 100644 index 00000000..60cbfec4 --- /dev/null +++ b/test-cases/chat_item_group_call_update_00.txtproto @@ -0,0 +1,183 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + groupCall = GroupCall { + read = true + ringerRecipientId = 4 + startedCallRecipientId = 1 + startedCallTimestamp = 1739546236831 + state = State.GENERIC + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_group_call_update_01.binproto b/test-cases/chat_item_group_call_update_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..21b253889b878f2e14e9184970cb1a653bc3604b GIT binary patch literal 818 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv(o)g@Qj8Ke7r)-R&NPUjO43Q3qyP1srBi=jx|}1xB*Ch{qVc%rz_Aqu0E6M4 ALjV8( literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_group_call_update_01.txtproto b/test-cases/chat_item_group_call_update_01.txtproto new file mode 100644 index 00000000..8740a1f9 --- /dev/null +++ b/test-cases/chat_item_group_call_update_01.txtproto @@ -0,0 +1,183 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1833527071193 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + groupCall = GroupCall { + callId = 7829309874007127439 + ringerRecipientId = 5 + startedCallRecipientId = 4 + startedCallTimestamp = 1660152710755 + state = State.JOINED + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_group_call_update_02.binproto b/test-cases/chat_item_group_call_update_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..26ca25321f906d40097528bdcfc7e611dcfb7904 GIT binary patch literal 820 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv(oxa^Qj8L}7Qf!Q&NPUjO4>=1 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1833527071194 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + groupCall = GroupCall { + callId = 6079152038928072179 + read = true + ringerRecipientId = 4 + startedCallRecipientId = 5 + startedCallTimestamp = 1739546236831 + state = State.RINGING + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_group_call_update_03.binproto b/test-cases/chat_item_group_call_update_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e23549916864e258996ca7bd3e671f2343129a39 GIT binary patch literal 810 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ r;b0cvQc_X?Qj8L}7r)-R&NPUjO3;a)gF%2rf)$w59`_tLw!#1aaT=G% literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_group_call_update_03.txtproto b/test-cases/chat_item_group_call_update_03.txtproto new file mode 100644 index 00000000..ce7ccb7d --- /dev/null +++ b/test-cases/chat_item_group_call_update_03.txtproto @@ -0,0 +1,182 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1833527071195 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + groupCall = GroupCall { + ringerRecipientId = 5 + startedCallRecipientId = 1 + startedCallTimestamp = 1660152710755 + state = State.ACCEPTED + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_group_call_update_04.binproto b/test-cases/chat_item_group_call_update_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e28cbf3224dc592d0319133c25d7dfa2e60fce10 GIT binary patch literal 822 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv(o@m_Qj8LJ7Qf!Q&NPUjO4do5qyP1srBi=jx|}1xD#4<_qA`E{k`)(>3{or@ E0RTas^Z)<= literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_group_call_update_04.txtproto b/test-cases/chat_item_group_call_update_04.txtproto new file mode 100644 index 00000000..453b9a29 --- /dev/null +++ b/test-cases/chat_item_group_call_update_04.txtproto @@ -0,0 +1,185 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1833527071196 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + groupCall = GroupCall { + callId = 7829309874007127439 + endedCallTimestamp = 100 + read = true + ringerRecipientId = 4 + startedCallRecipientId = 4 + startedCallTimestamp = 1739546236831 + state = State.DECLINED + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_group_call_update_05.binproto b/test-cases/chat_item_group_call_update_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..d251adad7e97520b026f6304bb3b1b361334c30c GIT binary patch literal 820 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv(oxa^Qj8LJ7r)-R&NPUjO4>=1 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1833527071197 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + groupCall = GroupCall { + callId = 6079152038928072179 + endedCallTimestamp = 100 + ringerRecipientId = 5 + startedCallRecipientId = 5 + startedCallTimestamp = 1660152710755 + state = State.MISSED + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_group_call_update_06.binproto b/test-cases/chat_item_group_call_update_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..29f33625540ed2e8a8ba69aa1e3ae421f76e2e38 GIT binary patch literal 814 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ v;b0cvQd0s(KQLw8Tl{+KI@2JADp4n44h8{s2^L^do4tDHe + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1833527071198 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + groupCall = GroupCall { + endedCallTimestamp = 100 + read = true + ringerRecipientId = 4 + startedCallRecipientId = 1 + startedCallTimestamp = 1739546236831 + state = State.MISSED_NOTIFICATION_PROFILE + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_group_call_update_07.binproto b/test-cases/chat_item_group_call_update_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..553a026f17850560647dc3e2865bae3404503723 GIT binary patch literal 818 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv(o)g@Qj8M!7r)-R&NPUjO43Q3qyP1srBi=jx|}1xA;GG^qVc%rz_Aqu0EGLV APXGV_ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_group_call_update_07.txtproto b/test-cases/chat_item_group_call_update_07.txtproto new file mode 100644 index 00000000..f6ef0f1d --- /dev/null +++ b/test-cases/chat_item_group_call_update_07.txtproto @@ -0,0 +1,183 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1833527071199 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + groupCall = GroupCall { + callId = 7829309874007127439 + ringerRecipientId = 5 + startedCallRecipientId = 4 + startedCallTimestamp = 1660152710755 + state = State.OUTGOING_RING + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_individual_call_update_00.binproto b/test-cases/chat_item_individual_call_update_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..aa321ce67ff610d8bc2fd0a50af0bb8b27048271 GIT binary patch literal 446 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nLQUX$p5;qpV-nz~-h@nc@N|1vA>iPNW Lm#ny8WWWdj{(5k) literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_individual_call_update_00.txtproto b/test-cases/chat_item_individual_call_update_00.txtproto new file mode 100644 index 00000000..b8479f8e --- /dev/null +++ b/test-cases/chat_item_individual_call_update_00.txtproto @@ -0,0 +1,131 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + individualCall = IndividualCall { + direction = Direction.INCOMING + read = true + startedCallTimestamp = 1739546236831 + state = State.ACCEPTED + type = Type.AUDIO_CALL + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_individual_call_update_01.binproto b/test-cases/chat_item_individual_call_update_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..41b0791b2d6307ef50a0fe99b8fff0ec08205f44 GIT binary patch literal 452 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@69%(g0G75;qsW-nz~-h@nc-N}Qwr^_- + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1833527071193 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + individualCall = IndividualCall { + callId = 7829309874007127439 + direction = Direction.OUTGOING + startedCallTimestamp = 1660152710755 + state = State.NOT_ACCEPTED + type = Type.VIDEO_CALL + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_individual_call_update_02.binproto b/test-cases/chat_item_individual_call_update_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0c2c24edb9763723630bf590bdea35c63cdef7fe GIT binary patch literal 454 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@69$(gIS961Nt=-nz~-h@nc_N|NLA?-~0S WPP)G?1RMy=8uQmLS#iP0fDr)b@^>r% literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_individual_call_update_02.txtproto b/test-cases/chat_item_individual_call_update_02.txtproto new file mode 100644 index 00000000..fd205a5e --- /dev/null +++ b/test-cases/chat_item_individual_call_update_02.txtproto @@ -0,0 +1,132 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1833527071194 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + individualCall = IndividualCall { + callId = 6079152038928072179 + direction = Direction.INCOMING + read = true + startedCallTimestamp = 1739546236831 + state = State.MISSED + type = Type.AUDIO_CALL + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_individual_call_update_03.binproto b/test-cases/chat_item_individual_call_update_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b30ea55e8b91705c82fee10a6f7ce406909bc050 GIT binary patch literal 444 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nMQUFqn61Nw>-nz~-h@nc*il2i)fJuT$ NfkoqS&w*nr3;-T6aIXLW literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_individual_call_update_03.txtproto b/test-cases/chat_item_individual_call_update_03.txtproto new file mode 100644 index 00000000..58563de9 --- /dev/null +++ b/test-cases/chat_item_individual_call_update_03.txtproto @@ -0,0 +1,130 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1833527071195 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + individualCall = IndividualCall { + direction = Direction.OUTGOING + startedCallTimestamp = 1660152710755 + state = State.MISSED_NOTIFICATION_PROFILE + type = Type.VIDEO_CALL + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_learned_profile_update_00.binproto b/test-cases/chat_item_learned_profile_update_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..c45b80ec79e5c1de8794cecf107675f5822cdf2d GIT binary patch literal 435 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;35(iR@5~t@a-Tm7zh@pzZi;d&@l7|x= E0YZImcmMzZ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_learned_profile_update_00.txtproto b/test-cases/chat_item_learned_profile_update_00.txtproto new file mode 100644 index 00000000..10ad568f --- /dev/null +++ b/test-cases/chat_item_learned_profile_update_00.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1716769083211 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + learnedProfileChange = LearnedProfileChatUpdate { + e164 = 17485550167 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_learned_profile_update_01.binproto b/test-cases/chat_item_learned_profile_update_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..c7c93695dd4276c1dbc78826f18a6b2e077927f8 GIT binary patch literal 435 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;35(iR@5@+Tu-Tm7zh@pzZi;d&;vEy$& E0YmL?`2YX_ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_learned_profile_update_01.txtproto b/test-cases/chat_item_learned_profile_update_01.txtproto new file mode 100644 index 00000000..a30c7723 --- /dev/null +++ b/test-cases/chat_item_learned_profile_update_01.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1716769083212 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + learnedProfileChange = LearnedProfileChatUpdate { + e164 = 19825550187 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_learned_profile_update_02.binproto b/test-cases/chat_item_learned_profile_update_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..fd8ccfec8219b3da13b4e6a948160748aea565d4 GIT binary patch literal 440 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;2k^xeT5@+Wv-Tm7zh@pzti(7~@Ej%ed JJyOru2mojYZ&UyP literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_learned_profile_update_02.txtproto b/test-cases/chat_item_learned_profile_update_02.txtproto new file mode 100644 index 00000000..d94fdad9 --- /dev/null +++ b/test-cases/chat_item_learned_profile_update_02.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1716769083213 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + learnedProfileChange = LearnedProfileChatUpdate { + username = "fWbogY.32" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_learned_profile_update_03.binproto b/test-cases/chat_item_learned_profile_update_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..5ba33133efbffad5770ee4606b12b01335c04c50 GIT binary patch literal 442 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nKk^@qV66fYE-Tm7zh@pz#i&uy{Fu2Ss LIjPEB&&UJ-NSbf_ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_learned_profile_update_03.txtproto b/test-cases/chat_item_learned_profile_update_03.txtproto new file mode 100644 index 00000000..37478813 --- /dev/null +++ b/test-cases/chat_item_learned_profile_update_03.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1716769083214 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + learnedProfileChange = LearnedProfileChatUpdate { + username = "QSvJcbzG.24" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_00.binproto b/test-cases/chat_item_payment_notification_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..73eeeabdf6720b6f54a993c7847b510e4b4df764 GIT binary patch literal 610 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#bsC0x8#E{tb@LB6DV<#bwyJ!9%K58hi z@K4Ld*(RVsXkuK*$R%WAVP + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1759338148022 + incoming = IncomingMessageDetails { + dateReceived = 1702291826269 + dateServerSent = 1794124103201 + read = true + sealedSender = true + } + paymentNotification = PaymentNotification { + amountMob = "486597436987453978" + feeMob = "96766463695632266634" + transactionDetails = TransactionDetails { + transaction = Transaction { + mobileCoinIdentification = MobileCoinTxoIdentification { + publicKey = [ +<36106eec0da607bfe85604e4e3670f77ebf5e721149f599dab4f9c8a0a0f6193> + ] + } + receipt = <0c22bad9944dc49190adabba8a72bebb4db939e0342ae035ddbe7fe465fdb345> + status = Status.INITIAL + timestamp = 1754822320310 + transaction = + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_01.binproto b/test-cases/chat_item_payment_notification_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..24f54a717136014321b309528fb011ebf2387215 GIT binary patch literal 626 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@5N`sC0!9#E{tj@LB6DV<$e2duRS1K58hi z=ugYV*(OblTN$~8ER0NyEzC?T4UJ8W%uUQp3@wF3%`MH$EX*v7O$>otOP~sK3o~OW z2BlU;t|mqfMj<6Gg{Y0^i#D)ZJXC#OTu{R$6|%f5IBVu>_38PWmd-tIqPaj~`@wy4 zI*k=hEb4jv{Po*A^%_V1uQ + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1759338148023 + incoming = IncomingMessageDetails { + dateReceived = 1702291826270 + dateServerSent = 1794124103202 + } + paymentNotification = PaymentNotification { + amountMob = "824386491352746419" + feeMob = "796686834141998247863" + note = "" + transactionDetails = TransactionDetails { + transaction = Transaction { + blockIndex = 9203588929966772552 + blockTimestamp = 1870070955972 + mobileCoinIdentification = MobileCoinTxoIdentification { + publicKey = [ +<5ab1cf72b00738e125ef73707c0a1a54a78a536a99eb27976fb2a59dcf3429a0> + ] + } + receipt = <0977166fd3faf51e18e707cf7cb4446159fb651a953525dd5da9aa792ff23f31> + status = Status.SUBMITTED + timestamp = 1754822320311 + transaction = <6dc1e0cd18b0df35d2dda82a4ffea322fd2aa72b0a038863ebb03fed8486f419> + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_02.binproto b/test-cases/chat_item_payment_notification_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..2dd63b1fd7ba1d7f6517b19c0b19387263275f2b GIT binary patch literal 631 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@5N*sC1JN$Y7M%@$gyeEMqS=E*1_JDTXG- zLyTNPCKhIRBO^02Gh-7ezN~<-k_!LI z-0URxsQg@|Rz|KSps_+qTngV8L`@UDvUcyc88K6~B^xU({4X=z=!R=vfqJsn&Tj3u z5<3p=o6~8mu;%fvCBL72eaEG-^3#^-Tg{9V8rfUDG#79BICaA}>nkTDJlonh#jl1+ y{*6A_^vf>g`a3HHjejk&^YlNSj+p)DZ#W;9z&3@8QFHgkXl?JZE}Ipy&=LS(^}VG4 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_payment_notification_02.txtproto b/test-cases/chat_item_payment_notification_02.txtproto new file mode 100644 index 00000000..96ee38ad --- /dev/null +++ b/test-cases/chat_item_payment_notification_02.txtproto @@ -0,0 +1,149 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148024 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + pending = Pending {} + recipientId = 4 + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "486597436987453978" + feeMob = "96766463695632266634" + note = "jPVtxOymkbGZom" + transactionDetails = TransactionDetails { + transaction = Transaction { + blockIndex = 783018544485806508 + blockTimestamp = 1869702052137 + mobileCoinIdentification = MobileCoinTxoIdentification { + publicKey = [ + + ] + } + receipt = <28fe841d9e2ff1cb589bfcfd570e0a10b620d15a9dbd5c2ab78a3b769a54a139> + status = Status.SUCCESSFUL + timestamp = 1754822320312 + transaction = <8107854a29a3b2f195b0f63bd4c8184986860917d55519fd5bc982fa3e64d7ee> + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_03.binproto b/test-cases/chat_item_payment_notification_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..063baccf9ef11eb3a92a11d46280df8a5a09ca01 GIT binary patch literal 502 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3l@iULxM5<4G0Yn^56#m~jd!6I;D@$0SY zOqG~87@HWaxr8i?OpGneOe_tJO^wV=%uEa|g+$FQ&CD#!ER0PIfm} + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148025 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent { + sealedSender = true + } + timestamp = 1833527071192 + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "824386491352746419" + feeMob = "796686834141998247863" + note = "lLHyuLGdFw" + transactionDetails = TransactionDetails { + failedTransaction = FailedTransaction { + reason = FailureReason.GENERIC + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_04.binproto b/test-cases/chat_item_payment_notification_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..12927bc2eda4da462b38977e3e18d75f94386a52 GIT binary patch literal 489 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@7LH@&!_i61yHgYn^56#mmLb!6LAJ?y04# z4V4(07!A0DOf1YyEzM1g%`7d + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148026 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent {} + timestamp = 1695248715439 + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "486597436987453978" + feeMob = "96766463695632266634" + transactionDetails = TransactionDetails { + failedTransaction = FailedTransaction { + reason = FailureReason.NETWORK + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_05.binproto b/test-cases/chat_item_payment_notification_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..a4094456497a4f38e91397f75f4935186ae722ea GIT binary patch literal 487 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@7LF@&;0j61yKhYn^56#lgkK!J@^)!PvxT z%q3)DWMXV#W@2e*Y-(g~VrF7!DI{ucX=Y|&W?^h%2;^D=!! literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_payment_notification_05.txtproto b/test-cases/chat_item_payment_notification_05.txtproto new file mode 100644 index 00000000..95779a0b --- /dev/null +++ b/test-cases/chat_item_payment_notification_05.txtproto @@ -0,0 +1,141 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148027 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 4 + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "824386491352746419" + feeMob = "796686834141998247863" + note = "" + transactionDetails = TransactionDetails { + failedTransaction = FailedTransaction { + reason = FailureReason.INSUFFICIENT_FUNDS + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_06.binproto b/test-cases/chat_item_payment_notification_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0ef2b42b829cc2b0826e9d735d454ca9dcafda22 GIT binary patch literal 621 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@5N+sC1qY$Y7M%^YB^gEMqTTE^ZDMfg6io zZ(V1q#n8mKk&#Qt#KO$f(%i(@%+kW##MIc*+(Jmi(#+h<%)|^RW@=_^WMpP$W^5wG zmlY6JQsG~jo1Nqym7l9r%2h0+#HC;+koSgn8T + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148028 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered {} + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "486597436987453978" + feeMob = "96766463695632266634" + note = "jPVtxOymkbGZom" + transactionDetails = TransactionDetails { + transaction = Transaction { + mobileCoinIdentification = MobileCoinTxoIdentification { + publicKey = [ +<36106eec0da607bfe85604e4e3670f77ebf5e721149f599dab4f9c8a0a0f6193> + ] + } + receipt = <0c22bad9944dc49190adabba8a72bebb4db939e0342ae035ddbe7fe465fdb345> + status = Status.INITIAL + timestamp = 1754822320310 + transaction = + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_07.binproto b/test-cases/chat_item_payment_notification_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..1f2acdbf20393e9c8aa0fbec19e0cc10f4da4d22 GIT binary patch literal 637 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@316sC1tZ$Y7M%`|w%oEMqTzE?y26f%S7w zEnRJB#Kgha#JHc4OUS~=#Mr{j#M02%)X3b#%*4=ANYvcY%*?{f!q~(R$h8EjFt;!> zmg36s@u)2IaZhn8S88SCYGUMI6jI_+h}w9*Xal>&L)G`i1vOk!AD==snhPYhAKW*m(^%oeqMp~!U%$OmuW{u6isReNj1+PYJ~%6};lAmmyDPN(|1DPf ztF>I4i@78D^#=R5Ep1;UtrR%R#quxz`YI>!oc(;w7MH}x->FhlO;zv4u3S~A|H + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148029 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "824386491352746419" + feeMob = "796686834141998247863" + note = "lLHyuLGdFw" + transactionDetails = TransactionDetails { + transaction = Transaction { + blockIndex = 9203588929966772552 + blockTimestamp = 1870070955972 + mobileCoinIdentification = MobileCoinTxoIdentification { + publicKey = [ +<5ab1cf72b00738e125ef73707c0a1a54a78a536a99eb27976fb2a59dcf3429a0> + ] + } + receipt = <0977166fd3faf51e18e707cf7cb4446159fb651a953525dd5da9aa792ff23f31> + status = Status.SUBMITTED + timestamp = 1754822320311 + transaction = <6dc1e0cd18b0df35d2dda82a4ffea322fd2aa72b0a038863ebb03fed8486f419> + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_08.binproto b/test-cases/chat_item_payment_notification_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..c0987bbd223f48fddd0522c1d5f7bb309a0689e8 GIT binary patch literal 615 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#QsC1GM$Y7M%_wZTkEMqS=E*1_JBZel% zO^jSZCKhIRBO^02Gh-8_Rz|KSpfN&9 zTngV8L`@UDvUcyc88K6~B^xU({4X=z=!R=vfqJsn&Tj3u5<3p=o6~8mu;%fvCBL72 zeaEG-^3#^-Tg{9V8rfUDG#79BICaA}>nkTDJlonh#jl1+{*6A_^vf>g`a3HHjejk& i^YlNSj+p)DZ#W;9z&3@8QFHgkXl?JZE}Ipy&=LT?^SAH- literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_payment_notification_08.txtproto b/test-cases/chat_item_payment_notification_08.txtproto new file mode 100644 index 00000000..d1aa2009 --- /dev/null +++ b/test-cases/chat_item_payment_notification_08.txtproto @@ -0,0 +1,148 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148030 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read {} + recipientId = 4 + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "486597436987453978" + feeMob = "96766463695632266634" + transactionDetails = TransactionDetails { + transaction = Transaction { + blockIndex = 783018544485806508 + blockTimestamp = 1869702052137 + mobileCoinIdentification = MobileCoinTxoIdentification { + publicKey = [ + + ] + } + receipt = <28fe841d9e2ff1cb589bfcfd570e0a10b620d15a9dbd5c2ab78a3b769a54a139> + status = Status.SUCCESSFUL + timestamp = 1754822320312 + transaction = <8107854a29a3b2f195b0f63bd4c8184986860917d55519fd5bc982fa3e64d7ee> + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_09.binproto b/test-cases/chat_item_payment_notification_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..07bf78466c6d22dc990e201e088cf46e4e03abba GIT binary patch literal 492 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~2Z3II}!68j%MYn^56#m~jd!6I;D@$0SY zOs$wW7@HUkxr8i?OpGneOe_tJO^wV=%uEa|g+$FQ&CD#!ER0PIfm} + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148031 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1833527071192 + viewed = Viewed { + sealedSender = true + } + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "824386491352746419" + feeMob = "796686834141998247863" + note = "" + transactionDetails = TransactionDetails { + failedTransaction = FailedTransaction { + reason = FailureReason.GENERIC + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_10.binproto b/test-cases/chat_item_payment_notification_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..baa7f59f67cad63a8b0262590327d8df6f17d802 GIT binary patch literal 505 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3l}iUm@P5(geWYn^56#mmLb!6LAJ?y04# z4XqfO7#+BTOf1YyEzM1g%`7d + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148032 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1695248715439 + viewed = Viewed {} + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "486597436987453978" + feeMob = "96766463695632266634" + note = "jPVtxOymkbGZom" + transactionDetails = TransactionDetails { + failedTransaction = FailedTransaction { + reason = FailureReason.NETWORK + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_11.binproto b/test-cases/chat_item_payment_notification_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..88bd4e02679f34f47d21ccf8349798a46f483922 GIT binary patch literal 495 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~2c3I + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148033 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + skipped = Skipped {} + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "824386491352746419" + feeMob = "796686834141998247863" + note = "lLHyuLGdFw" + transactionDetails = TransactionDetails { + failedTransaction = FailedTransaction { + reason = FailureReason.INSUFFICIENT_FUNDS + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_12.binproto b/test-cases/chat_item_payment_notification_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0e63a9a2a57bb5b41c016347f511cbd45565902f GIT binary patch literal 605 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#RsI;FE$Y7K>^zd2hEMqTTE^ZDMfg6io zZ(V2V#n8mKkdaHs#KO$f(%i(@%+kW##MIc*+(Jmi(#+h<%)|^RW@=_^WMpP$W^AHV z%2h0+#HC;+koSgn8T + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148034 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "486597436987453978" + feeMob = "96766463695632266634" + transactionDetails = TransactionDetails { + transaction = Transaction { + mobileCoinIdentification = MobileCoinTxoIdentification { + publicKey = [ +<36106eec0da607bfe85604e4e3670f77ebf5e721149f599dab4f9c8a0a0f6193> + ] + } + receipt = <0c22bad9944dc49190adabba8a72bebb4db939e0342ae035ddbe7fe465fdb345> + status = Status.INITIAL + timestamp = 1754822320310 + transaction = + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_13.binproto b/test-cases/chat_item_payment_notification_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3de057bc1fecda005a3becd2cf0c7e0418406f91 GIT binary patch literal 627 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@5N(sC1PP$Y7K>{P0=pEMqTzE?y26f%S7w zEnRKs#l*qb#JH7_OUS~=#Mr{j#M02%)X3b#%*4=ANYvcY%*?{f!q~(R$h8EjFt;!> zmSRw9W#npNcBB;l!ez*Uw+Sy;HAo7~0XwEX`qR{E>8T$_uzBl-0P u`?oD^UnH#*ILpQIFaP=~C-I#9e9ab@#K_;NQd3P;@5ZiNRjL2U-Vgx9Cc9+- literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_payment_notification_13.txtproto b/test-cases/chat_item_payment_notification_13.txtproto new file mode 100644 index 00000000..40471b72 --- /dev/null +++ b/test-cases/chat_item_payment_notification_13.txtproto @@ -0,0 +1,152 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148035 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "824386491352746419" + feeMob = "796686834141998247863" + note = "" + transactionDetails = TransactionDetails { + transaction = Transaction { + blockIndex = 9203588929966772552 + blockTimestamp = 1870070955972 + mobileCoinIdentification = MobileCoinTxoIdentification { + publicKey = [ +<5ab1cf72b00738e125ef73707c0a1a54a78a536a99eb27976fb2a59dcf3429a0> + ] + } + receipt = <0977166fd3faf51e18e707cf7cb4446159fb651a953525dd5da9aa792ff23f31> + status = Status.SUBMITTED + timestamp = 1754822320311 + transaction = <6dc1e0cd18b0df35d2dda82a4ffea322fd2aa72b0a038863ebb03fed8486f419> + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_payment_notification_14.binproto b/test-cases/chat_item_payment_notification_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3bf12362c42fef51aeeb269697c75934713963ec GIT binary patch literal 633 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@5N^6**fEMqSYE;bGpFD4GA zCdNaITtX%mW~P?rCdOu#7Um|V#+K$5LL!!C=4NIlW#@3JnN6|&G00DB0% A^#A|> literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_payment_notification_14.txtproto b/test-cases/chat_item_payment_notification_14.txtproto new file mode 100644 index 00000000..1bc0639a --- /dev/null +++ b/test-cases/chat_item_payment_notification_14.txtproto @@ -0,0 +1,151 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1759338148036 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 4 + } + ] + } + paymentNotification = PaymentNotification { + amountMob = "486597436987453978" + feeMob = "96766463695632266634" + note = "jPVtxOymkbGZom" + transactionDetails = TransactionDetails { + transaction = Transaction { + blockIndex = 783018544485806508 + blockTimestamp = 1869702052137 + mobileCoinIdentification = MobileCoinTxoIdentification { + publicKey = [ + + ] + } + receipt = <28fe841d9e2ff1cb589bfcfd570e0a10b620d15a9dbd5c2ab78a3b769a54a139> + status = Status.SUCCESSFUL + timestamp = 1754822320312 + transaction = <8107854a29a3b2f195b0f63bd4c8184986860917d55519fd5bc982fa3e64d7ee> + } + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_profile_change_update_00.binproto b/test-cases/chat_item_profile_change_update_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..1210829334447e31df2096875afd94de9fc2f97d GIT binary patch literal 439 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;4k_J&h3{}EPf?VtoC28SF`RPJz#Su=~ G`R)M9&TU2j literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_profile_change_update_00.txtproto b/test-cases/chat_item_profile_change_update_00.txtproto new file mode 100644 index 00000000..44f69870 --- /dev/null +++ b/test-cases/chat_item_profile_change_update_00.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + profileChange = ProfileChangeChatUpdate { + newName = "sXBkoG" + previousName = "XtfWbog" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_profile_change_update_01.binproto b/test-cases/chat_item_profile_change_update_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..288616c745c850bbf0aee59843e315a9adc71e12 GIT binary patch literal 460 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0b>G5}E$Hx|F%y3RC+p-NFno{QJNDloXr cD> + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + profileChange = ProfileChangeChatUpdate { + newName = "kmlnzNFkpZzmNn" + previousName = "OzQSvJcbzGYSD" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_profile_change_update_02.binproto b/test-cases/chat_item_profile_change_update_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6b89a122383c56964563e1bd217452186902afe3 GIT binary patch literal 446 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nLQUXyD>*t + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1695248715439 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + profileChange = ProfileChangeChatUpdate { + newName = "sXBkoG" + previousName = "XtfWbog" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_00.binproto b/test-cases/chat_item_remote_delete_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3adcff34a927a690ba2fdc86009c76eacc606652 GIT binary patch literal 445 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nQQUp;F>n_fD``N%rh~w^=|A&tn3M~B7 Ma&fi^C + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577838 + incoming = IncomingMessageDetails { + dateReceived = 1702291826269 + dateServerSent = 1794124103201 + read = true + sealedSender = true + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_01.binproto b/test-cases/chat_item_remote_delete_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..45b234d5e46106afb18fcf10863dedbeb5417726 GIT binary patch literal 441 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;6k_Ax`>o3lE``N&WkK^8%|A&tn3M~55 Ka&fjv5d#1VuykSo literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_remote_delete_01.txtproto b/test-cases/chat_item_remote_delete_01.txtproto new file mode 100644 index 00000000..5bf10af7 --- /dev/null +++ b/test-cases/chat_item_remote_delete_01.txtproto @@ -0,0 +1,126 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577839 + incoming = IncomingMessageDetails { + dateReceived = 1702291826270 + dateServerSent = 1794124103202 + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_02.binproto b/test-cases/chat_item_remote_delete_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..55689035f4d26a6080d3fe72dab4e5c279216b0a GIT binary patch literal 433 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qm5(QF>5*segdHdPGi;atggGGv=hyegy CgKS6u literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_remote_delete_02.txtproto b/test-cases/chat_item_remote_delete_02.txtproto new file mode 100644 index 00000000..899ddbf2 --- /dev/null +++ b/test-cases/chat_item_remote_delete_02.txtproto @@ -0,0 +1,130 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577840 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + pending = Pending {} + recipientId = 4 + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_03.binproto b/test-cases/chat_item_remote_delete_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..88f8bcca9fd4e8f6e3e95c4d8d6deed664fe9e56 GIT binary patch literal 442 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nKk^@qV5*shhdHdPGi=T^^gGJ!R;@4Z( MnJO`HFcvWY08`d*jsO4v literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_remote_delete_03.txtproto b/test-cases/chat_item_remote_delete_03.txtproto new file mode 100644 index 00000000..7479851f --- /dev/null +++ b/test-cases/chat_item_remote_delete_03.txtproto @@ -0,0 +1,133 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577841 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent { + sealedSender = true + } + timestamp = 1833527071192 + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_04.binproto b/test-cases/chat_item_remote_delete_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..ca72fedf14925f37c0efabd308fb45f5509c60f8 GIT binary patch literal 440 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;2k^xeT5}Pj0dHdPGiZEzI; literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_remote_delete_04.txtproto b/test-cases/chat_item_remote_delete_04.txtproto new file mode 100644 index 00000000..fb8549c3 --- /dev/null +++ b/test-cases/chat_item_remote_delete_04.txtproto @@ -0,0 +1,131 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577842 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent {} + timestamp = 1695248715439 + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_05.binproto b/test-cases/chat_item_remote_delete_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..df14ef2cec0c8a47c2dff38c25c30557495bca4f GIT binary patch literal 435 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;35(iR@5}Pm1dHdPGi-U`egGGypgRzJK E05*+mZU6uP literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_remote_delete_05.txtproto b/test-cases/chat_item_remote_delete_05.txtproto new file mode 100644 index 00000000..c7388dd8 --- /dev/null +++ b/test-cases/chat_item_remote_delete_05.txtproto @@ -0,0 +1,132 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577843 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 4 + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_06.binproto b/test-cases/chat_item_remote_delete_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..5a510a64754fc7be65cf43b858058bff52bd6e12 GIT binary patch literal 440 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;2k^xeT5?e0LdHdPGi + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577844 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered {} + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_07.binproto b/test-cases/chat_item_remote_delete_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..46dd08a033b85aa5081cf36421e0360be9f5f579 GIT binary patch literal 442 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nKk^@qV5?e3MdHdPGi=T^^gGFHd+*3 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577845 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_08.binproto b/test-cases/chat_item_remote_delete_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..68a500df5e74de35696847eb5c405d75380f3649 GIT binary patch literal 433 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qm5(QF>65B4$dHdPGi;atggT;uUhyegz CLu_UM literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_remote_delete_08.txtproto b/test-cases/chat_item_remote_delete_08.txtproto new file mode 100644 index 00000000..2615bcef --- /dev/null +++ b/test-cases/chat_item_remote_delete_08.txtproto @@ -0,0 +1,130 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577846 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read {} + recipientId = 4 + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_09.binproto b/test-cases/chat_item_remote_delete_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..cfd3b3aeaf50706519aabb2328142448317365b4 GIT binary patch literal 442 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nKk^@qV65B7%dHdPGi=T^^gGJ!R;@4Z( MnOZS%FcvWY095>NtN;K2 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_remote_delete_09.txtproto b/test-cases/chat_item_remote_delete_09.txtproto new file mode 100644 index 00000000..3f9bff3b --- /dev/null +++ b/test-cases/chat_item_remote_delete_09.txtproto @@ -0,0 +1,133 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577847 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1833527071192 + viewed = Viewed { + sealedSender = true + } + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_10.binproto b/test-cases/chat_item_remote_delete_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..d901eaf597e60a2b799089b4807685de01031d42 GIT binary patch literal 440 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;2k^xeT5<4!=dHdPGi + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577848 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1695248715439 + viewed = Viewed {} + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_11.binproto b/test-cases/chat_item_remote_delete_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6866a4ecac45193e1f84cc33c4c9abe430b56134 GIT binary patch literal 433 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qm5(QF>5<4%>dHdPGi;atggT;xVhyegz Cvut?) literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_remote_delete_11.txtproto b/test-cases/chat_item_remote_delete_11.txtproto new file mode 100644 index 00000000..d6ef166f --- /dev/null +++ b/test-cases/chat_item_remote_delete_11.txtproto @@ -0,0 +1,130 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577849 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + skipped = Skipped {} + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_12.binproto b/test-cases/chat_item_remote_delete_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0582dd4247da6aaf41aed0d5b60be0b3e40ea418 GIT binary patch literal 440 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;2k^xeT61y(WdHdPGi + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577850 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_13.binproto b/test-cases/chat_item_remote_delete_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..a7f2d734b4e1dc3a51b293e35bac75ad78875f5a GIT binary patch literal 442 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nKk^@qV61y+XdHdPGi=T^^gGFHd+*3 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577851 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_remote_delete_14.binproto b/test-cases/chat_item_remote_delete_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3bade2ad6a4f008550074c74a3139ab1a4bb3531 GIT binary patch literal 435 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;35(iR@5_>MrdHdPGi-U`egT;%9gQ + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577852 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 4 + } + ] + } + remoteDeletedMessage = RemoteDeletedMessage {} + } +} \ No newline at end of file diff --git a/test-cases/chat_item_session_switchover_update_00.binproto b/test-cases/chat_item_session_switchover_update_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0ce58f15cf6be9972a40adb3b57aa17a2bf943dc GIT binary patch literal 428 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV w6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qh5&%&_3{@OPY#bMxdsaIG04>pK=l}o! literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_session_switchover_update_00.txtproto b/test-cases/chat_item_session_switchover_update_00.txtproto new file mode 100644 index 00000000..948a46e0 --- /dev/null +++ b/test-cases/chat_item_session_switchover_update_00.txtproto @@ -0,0 +1,126 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + sessionSwitchover = SessionSwitchoverChatUpdate { + e164 = 18075550161 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_session_switchover_update_01.binproto b/test-cases/chat_item_session_switchover_update_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..06238bbdebc3d9f684a04541f48a22ffe90d6432 GIT binary patch literal 436 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;1k^oT>Hx|F%y3RC+p^DRponz6~Z7-U6 E0kZFJ#{d8T literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_session_switchover_update_01.txtproto b/test-cases/chat_item_session_switchover_update_01.txtproto new file mode 100644 index 00000000..e926ccb9 --- /dev/null +++ b/test-cases/chat_item_session_switchover_update_01.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + sessionSwitchover = SessionSwitchoverChatUpdate { + e164 = 447700900514 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_session_switchover_update_02.binproto b/test-cases/chat_item_session_switchover_update_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..2c3092e1786fac436d3f620bf745eca74284ab0c GIT binary patch literal 435 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;35(iNd>*t + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1695248715439 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + sessionSwitchover = SessionSwitchoverChatUpdate { + e164 = 18075550161 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_00.binproto b/test-cases/chat_item_simple_updates_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..77a1cb0a27b670cb1c1b2dc138ad24c76cf330bd GIT binary patch literal 424 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV r6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6v|;sH@X3{@;#OdN~=g1%?t literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_00.txtproto b/test-cases/chat_item_simple_updates_00.txtproto new file mode 100644 index 00000000..fff57e2d --- /dev/null +++ b/test-cases/chat_item_simple_updates_00.txtproto @@ -0,0 +1,126 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.JOINED_SIGNAL + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_01.binproto b/test-cases/chat_item_simple_updates_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..57e0c65d41c877a4f3e0c36d5b45212e0a03520e GIT binary patch literal 431 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qk5(ZHcHx|F%y3RC+p^AlziGv9Mh4*X- literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_01.txtproto b/test-cases/chat_item_simple_updates_01.txtproto new file mode 100644 index 00000000..0f95bc17 --- /dev/null +++ b/test-cases/chat_item_simple_updates_01.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.IDENTITY_UPDATE + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_02.binproto b/test-cases/chat_item_simple_updates_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..47bbe7130c95d676b806ffedc5d7eb8da3358c64 GIT binary patch literal 431 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qk5(ZHc>*t + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1695248715439 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.IDENTITY_VERIFIED + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_03.binproto b/test-cases/chat_item_simple_updates_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..ba328d4def542de0c02bd2083acc2391f215e05b GIT binary patch literal 424 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV r6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6v|;sH@X3{@;#OdKo#g289z literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_03.txtproto b/test-cases/chat_item_simple_updates_03.txtproto new file mode 100644 index 00000000..4562ccae --- /dev/null +++ b/test-cases/chat_item_simple_updates_03.txtproto @@ -0,0 +1,126 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.IDENTITY_DEFAULT + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_04.binproto b/test-cases/chat_item_simple_updates_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f531956386046b8ec36c0e70be355e8fb1aa2034 GIT binary patch literal 431 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qk5(ZHcHx|F%y3RC+p^AlziGvjYh5Bp@ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_04.txtproto b/test-cases/chat_item_simple_updates_04.txtproto new file mode 100644 index 00000000..3b6ec19e --- /dev/null +++ b/test-cases/chat_item_simple_updates_04.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.CHANGE_NUMBER + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_05.binproto b/test-cases/chat_item_simple_updates_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..5ba9e35841355d55d320e745877070ecadfb7cf6 GIT binary patch literal 431 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qk5(ZHc>*t + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1695248715439 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.RELEASE_CHANNEL_DONATION_REQUEST + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_06.binproto b/test-cases/chat_item_simple_updates_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..07d93b6407d50b8f5a8dd2cbbd88089befec8292 GIT binary patch literal 424 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV r6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6v|;sH@X3{@;#OdRY0g2ZR( literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_06.txtproto b/test-cases/chat_item_simple_updates_06.txtproto new file mode 100644 index 00000000..4eec9eec --- /dev/null +++ b/test-cases/chat_item_simple_updates_06.txtproto @@ -0,0 +1,126 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.END_SESSION + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_07.binproto b/test-cases/chat_item_simple_updates_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..eafd986201f5339d5f266e03a1a2415c44a69919 GIT binary patch literal 431 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qk5(ZHcHx|F%y3RC+p^AlziGu?Gh5c*} literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_07.txtproto b/test-cases/chat_item_simple_updates_07.txtproto new file mode 100644 index 00000000..27bbaf24 --- /dev/null +++ b/test-cases/chat_item_simple_updates_07.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.CHAT_SESSION_REFRESH + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_08.binproto b/test-cases/chat_item_simple_updates_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6162cc94af090621264a788bc2a03f88e11d2f2c GIT binary patch literal 431 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qk5(ZHc>*t + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1695248715439 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.BAD_DECRYPT + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_09.binproto b/test-cases/chat_item_simple_updates_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..bccad0fe25392852553c4a3dcbf9c758b789f21c GIT binary patch literal 424 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV r6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6v|;sH@X3{@;#OdMPQg2!j< literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_09.txtproto b/test-cases/chat_item_simple_updates_09.txtproto new file mode 100644 index 00000000..eb73109a --- /dev/null +++ b/test-cases/chat_item_simple_updates_09.txtproto @@ -0,0 +1,126 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.PAYMENTS_ACTIVATED + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_10.binproto b/test-cases/chat_item_simple_updates_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..104ae63f1eda095771877272f764d73d8a4f7e5b GIT binary patch literal 431 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qk5(ZHcHx|F%y3RC+p^AlziGv#eh5&34 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_10.txtproto b/test-cases/chat_item_simple_updates_10.txtproto new file mode 100644 index 00000000..5cb6a126 --- /dev/null +++ b/test-cases/chat_item_simple_updates_10.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.PAYMENT_ACTIVATION_REQUEST + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_11.binproto b/test-cases/chat_item_simple_updates_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0ab9216758caf0d1ff244f5188d2895ea0db5c2f GIT binary patch literal 431 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qk5(ZHc>*t + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1695248715439 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.UNSUPPORTED_PROTOCOL_MESSAGE + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_12.binproto b/test-cases/chat_item_simple_updates_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..110edf1390a46bf6fdbc29ce0b16d11ea82c64e9 GIT binary patch literal 424 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV r6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6v|;sH@X3{@;#OdPxbg34#_ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_12.txtproto b/test-cases/chat_item_simple_updates_12.txtproto new file mode 100644 index 00000000..9a236790 --- /dev/null +++ b/test-cases/chat_item_simple_updates_12.txtproto @@ -0,0 +1,126 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.REPORTED_SPAM + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_13.binproto b/test-cases/chat_item_simple_updates_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..4f7601bf944dddf4c122ff07ad1e555f0167128d GIT binary patch literal 431 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qk5(ZHcHx|F%y3RC+p^AlziGvRSh68LA literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_13.txtproto b/test-cases/chat_item_simple_updates_13.txtproto new file mode 100644 index 00000000..ff6de4a1 --- /dev/null +++ b/test-cases/chat_item_simple_updates_13.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.BLOCKED + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_14.binproto b/test-cases/chat_item_simple_updates_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e8c117330c98435a30da48db933155b24d21c39b GIT binary patch literal 431 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qk5(ZHc>*tifck5$ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_14.txtproto b/test-cases/chat_item_simple_updates_14.txtproto new file mode 100644 index 00000000..86297497 --- /dev/null +++ b/test-cases/chat_item_simple_updates_14.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1695248715439 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.UNBLOCKED + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_simple_updates_15.binproto b/test-cases/chat_item_simple_updates_15.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6fd6942ffeeda9fd78760f7e3bdf7080411915d1 GIT binary patch literal 424 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV r6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6v|;sH@X3{@;#OdJ9Lg3V|0 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_simple_updates_15.txtproto b/test-cases/chat_item_simple_updates_15.txtproto new file mode 100644 index 00000000..62cac022 --- /dev/null +++ b/test-cases/chat_item_simple_updates_15.txtproto @@ -0,0 +1,126 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + simpleUpdate = SimpleChatUpdate { + type = Type.MESSAGE_REQUEST_ACCEPTED + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_00.binproto b/test-cases/chat_item_standard_message_formatted_text_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..28315ce6e133054a195411c0ff7c07f8177b51e1 GIT binary patch literal 825 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cvGE~wBQY;e3zrEc&&(ukXqvg)bExqOf8&42_IUOwG(K FECJCPoels1 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_00.txtproto b/test-cases/chat_item_standard_message_formatted_text_00.txtproto new file mode 100644 index 00000000..e8428238 --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_00.txtproto @@ -0,0 +1,184 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 3 + dateSent = 1829227952967 + incoming = IncomingMessageDetails { + dateReceived = 1893384744452 + dateServerSent = 1661654979888 + read = true + sealedSender = true + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_01.binproto b/test-cases/chat_item_standard_message_formatted_text_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..81a25f411c7903b85a1572f55a2f85862f98df48 GIT binary patch literal 845 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cva#eB$QY;cDzP;T%&(w*JqxH_rExqOf8&|!aw9X(3m^!$)3=EBoO-#+qEi8q^ MI2eG2qenR-05b%gmjD0& literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_01.txtproto b/test-cases/chat_item_standard_message_formatted_text_01.txtproto new file mode 100644 index 00000000..90278ba1 --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_01.txtproto @@ -0,0 +1,188 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 3 + dateSent = 1829227952968 + incoming = IncomingMessageDetails { + dateReceived = 1893384744453 + dateServerSent = 1661654979889 + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 1 + mentionAci = <00000000000000000000000000000001> + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_02.binproto b/test-cases/chat_item_standard_message_formatted_text_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..fdcec28d66f661b66513c996857f49bccf16c46c GIT binary patch literal 851 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv@>cQ$Qj8KOzrEc&&(w>Di-m(liUCNnN-;#~3F&Zg85kNFo0yuJTUZK-aWDw5 PN})$Mvk)6l92lekh_IJH literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_02.txtproto b/test-cases/chat_item_standard_message_formatted_text_02.txtproto new file mode 100644 index 00000000..a6f4c283 --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_02.txtproto @@ -0,0 +1,200 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952969 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + pending = Pending {} + recipientId = 4 + }, + SendStatus { + pending = Pending {} + recipientId = 5 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 5 + mentionAci = <00000000000000000000000000000003> + }, + BodyRange { + length = 10 + style = Style.NONE + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_03.binproto b/test-cases/chat_item_standard_message_formatted_text_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b9894a0b10ce43f32be93c8b00f028eff7faac47 GIT binary patch literal 861 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv3RMaQQj8L(zP;T%&(uqfix>gxvT + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952970 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent { + sealedSender = true + } + timestamp = 1833527071192 + }, + SendStatus { + recipientId = 5 + sent = Sent { + sealedSender = true + } + timestamp = 1702291826269 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 5 + start = 1 + style = Style.BOLD + }, + BodyRange { + length = 7 + start = 2 + style = Style.ITALIC + }, + BodyRange { + length = 3 + start = 3 + style = Style.SPOILER + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_04.binproto b/test-cases/chat_item_standard_message_formatted_text_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..501c9ae6809efe73cd212d453c9b72b806bc6903 GIT binary patch literal 897 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cvs#GcmQj8L(zrEc&&(uqbi<^T*VEx=vOII5zF#tKN0t^4NT%2v9#1Q2tzyhXO6 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952971 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent {} + timestamp = 1695248715439 + }, + SendStatus { + recipientId = 5 + sent = Sent {} + timestamp = 1794124103201 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 1 + style = Style.STRIKETHROUGH + }, + BodyRange { + length = 5 + style = Style.MONOSPACE + }, + BodyRange { + length = 1 + mentionAci = <00000000000000000000000000000001> + }, + BodyRange { + length = 5 + mentionAci = <00000000000000000000000000000003> + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_05.binproto b/test-cases/chat_item_standard_message_formatted_text_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..38ae410ef028e70ced120fc7bd0daa8ca376e086 GIT binary patch literal 863 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv3RemRQj8L3zP;T%&(uqRi;aUti;05~NV9_IC^I1wE-nK@BV!X&Gjj_|AvO*M g0buX}X+{B71x6svB*3n~1f-b-m=&18@{9^B0K4&+mjD0& literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_05.txtproto b/test-cases/chat_item_standard_message_formatted_text_05.txtproto new file mode 100644 index 00000000..0582d078 --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_05.txtproto @@ -0,0 +1,219 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952972 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 4 + }, + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 5 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 10 + style = Style.NONE + }, + BodyRange { + length = 5 + start = 1 + style = Style.BOLD + }, + BodyRange { + length = 7 + start = 2 + style = Style.ITALIC + }, + BodyRange { + length = 3 + start = 3 + style = Style.SPOILER + }, + BodyRange { + length = 1 + style = Style.STRIKETHROUGH + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_06.binproto b/test-cases/chat_item_standard_message_formatted_text_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f687b0c7afc29fbc039b1820250d528b0a4c4d44 GIT binary patch literal 833 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cvvQ#n$Qj8L3zrEc&&(uqbi<^T*;Kt(DTi2OtF#tKN0(Z~+KYY|siy?|nh=+^I Oz|hFp#MI2(!V& + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952973 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered {} + recipientId = 4 + timestamp = 1833527071192 + }, + SendStatus { + delivered = Delivered {} + recipientId = 5 + timestamp = 1702291826269 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_07.binproto b/test-cases/chat_item_standard_message_formatted_text_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f501e9f733815d7880cf63cdf9d0ce457ad2cfe7 GIT binary patch literal 845 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cva#eB$Qj8MkzP;T%&(uqfix>gxvT;U|Fm43Z35y(i3y2t YaTypI8Jn1znOj&2v2id6uqvn+a literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_07.txtproto b/test-cases/chat_item_standard_message_formatted_text_07.txtproto new file mode 100644 index 00000000..eaa8c553 --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_07.txtproto @@ -0,0 +1,202 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952974 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 4 + timestamp = 1695248715439 + }, + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 5 + timestamp = 1794124103201 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 5 + style = Style.MONOSPACE + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_08.binproto b/test-cases/chat_item_standard_message_formatted_text_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0779d2028ae091ee1c094cd868e0743cb35c6a7a GIT binary patch literal 867 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cvidKpQQj8MkzrEc&&(w>Di-m*5hyh5l8ZkuK3E6OQ85kNFo0yuJTUZK-aWDXl OMvrhtusAD*I5PksD3{0p literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_08.txtproto b/test-cases/chat_item_standard_message_formatted_text_08.txtproto new file mode 100644 index 00000000..3c7f9e57 --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_08.txtproto @@ -0,0 +1,200 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952975 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read {} + recipientId = 4 + }, + SendStatus { + read = Read {} + recipientId = 5 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 1 + mentionAci = <00000000000000000000000000000001> + }, + BodyRange { + length = 5 + mentionAci = <00000000000000000000000000000003> + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_09.binproto b/test-cases/chat_item_standard_message_formatted_text_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f70d11dc66101fa5e11f2fb33fa32ad36ba71d42 GIT binary patch literal 861 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv3RMaQQj8K8zP;T%&(uqfix>gxvTU|<4iMgdj@Mj*{3z^=dq046}7ga7~l literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_09.txtproto b/test-cases/chat_item_standard_message_formatted_text_09.txtproto new file mode 100644 index 00000000..b5c12d09 --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_09.txtproto @@ -0,0 +1,212 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952976 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1833527071192 + viewed = Viewed { + sealedSender = true + } + }, + SendStatus { + recipientId = 5 + timestamp = 1702291826269 + viewed = Viewed { + sealedSender = true + } + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 10 + style = Style.NONE + }, + BodyRange { + length = 5 + start = 1 + style = Style.BOLD + }, + BodyRange { + length = 7 + start = 2 + style = Style.ITALIC + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_10.binproto b/test-cases/chat_item_standard_message_formatted_text_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..d2c056e47553fc160f235ab055f39a755de116b5 GIT binary patch literal 881 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv%2Y}RQj8K8zrEc&&(uqbi<^T*VEx=vOII6OF#tKN0t^4NT%2uU#SmpDWW&W} oU}$7)Vrph?VJXB0)X1#B45S$Z7!_E+G^+xukQj(Bg`O-J0hqO*AOHXW literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_10.txtproto b/test-cases/chat_item_standard_message_formatted_text_10.txtproto new file mode 100644 index 00000000..f42a72b2 --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_10.txtproto @@ -0,0 +1,211 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952977 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1695248715439 + viewed = Viewed {} + }, + SendStatus { + recipientId = 5 + timestamp = 1794124103201 + viewed = Viewed {} + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 3 + start = 3 + style = Style.SPOILER + }, + BodyRange { + length = 1 + style = Style.STRIKETHROUGH + }, + BodyRange { + length = 5 + style = Style.MONOSPACE + }, + BodyRange { + length = 1 + mentionAci = <00000000000000000000000000000001> + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_11.binproto b/test-cases/chat_item_standard_message_formatted_text_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..a68688362aa1d9754c1da0ebf4c7b60debc25a58 GIT binary patch literal 875 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cvN>)k)Qj8LpzP;T%&(w>Di-m*5i2+EmIx$4K3Au1_85kNFo0yuJTUZK-aWDw5 jN})$Mvk)6l92lfPno)pNfe}bE39u_L0cmCdW(8&d|5cd; literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_11.txtproto b/test-cases/chat_item_standard_message_formatted_text_11.txtproto new file mode 100644 index 00000000..64ac7bec --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_11.txtproto @@ -0,0 +1,215 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952978 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + skipped = Skipped {} + }, + SendStatus { + recipientId = 5 + skipped = Skipped {} + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 5 + mentionAci = <00000000000000000000000000000003> + }, + BodyRange { + length = 10 + style = Style.NONE + }, + BodyRange { + length = 5 + start = 1 + style = Style.BOLD + }, + BodyRange { + length = 7 + start = 2 + style = Style.ITALIC + }, + BodyRange { + length = 3 + start = 3 + style = Style.SPOILER + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_12.binproto b/test-cases/chat_item_standard_message_formatted_text_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f147df9fbdddff90854b6fcb8f073a0124028f7e GIT binary patch literal 833 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cvvQ#n$Qj8LpzrEc&&(uqbi<^T*;Kt(DTi2O-F#tKN0(Z~+KYY~Ciy?|nh=+^I Oz|hFp#MI2(!V& + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952979 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 4 + timestamp = 1833527071192 + }, + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 5 + timestamp = 1702291826269 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_13.binproto b/test-cases/chat_item_standard_message_formatted_text_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..05e7290934ca2ffff430b6ca407336645e01b369 GIT binary patch literal 845 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cva#eB$Qj8K;zP;T%&(uqfix>gxvT;U|Fm43Z35y(i3y2t YaTypI8Jn1znOj&2v2id6FeLssI20 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_13.txtproto b/test-cases/chat_item_standard_message_formatted_text_13.txtproto new file mode 100644 index 00000000..43e03171 --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_13.txtproto @@ -0,0 +1,202 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952980 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 4 + timestamp = 1695248715439 + }, + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 5 + timestamp = 1794124103201 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 1 + style = Style.STRIKETHROUGH + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_formatted_text_14.binproto b/test-cases/chat_item_standard_message_formatted_text_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..96215a1582239983354186a6e35ab0516b2b4b1a GIT binary patch literal 855 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?d-AqCqOdMQN%}iVb9Vfu3bqDA-E9R;vEbrgVRNy%lDloS+O>FcLfB<2?6 zr0ON-=jtbxC6*)>>17q98!%d#!99=y^>m5=lN3P0<`z!y7KZP-Bx~ z;b0cv@>lW&Qj8K;zrEc&&(uqRi;aWDi;05?NV9_IC_Nz^E-nK@BV!X&Gjj_|AvO*M R0agW8Au%A$D1{#Ri~#)jm(BnH literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_formatted_text_14.txtproto b/test-cases/chat_item_standard_message_formatted_text_14.txtproto new file mode 100644 index 00000000..ff82e6ce --- /dev/null +++ b/test-cases/chat_item_standard_message_formatted_text_14.txtproto @@ -0,0 +1,204 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <0000000000000000000000000000000000000000000000000000000000000000> + snapshot = GroupSnapshot { + avatarUrl = "https://example.com/avatar.jpg" + inviteLinkPassword = <> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.ADMINISTRATOR + userId = <00000000000000640000000000000064> + }, + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.DEFAULT + userId = <00000000000000000000000000000003> + } + ] + title = GroupAttributeBlob { + title = "Me, Alice, Bob" + } + version = 1 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} + +Frame { + chat = Chat { + id = 3 + recipientId = 10 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 3 + dateSent = 1829227952981 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 4 + }, + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 5 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "0123456789" + bodyRanges = [ + BodyRange { + length = 5 + style = Style.MONOSPACE + }, + BodyRange { + length = 1 + mentionAci = <00000000000000000000000000000001> + } + ] + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_00.binproto b/test-cases/chat_item_standard_message_long_text_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..ad4ead28a7ab61e434493dce4ca95a6a5fd5862c GIT binary patch literal 447 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nPQU*~H>n_fD``N%rh~w^=|A&tn3M~B7 Oa&fi^C + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577838 + incoming = IncomingMessageDetails { + dateReceived = 1702291826269 + dateServerSent = 1794124103201 + read = true + sealedSender = true + } + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_01.binproto b/test-cases/chat_item_standard_message_long_text_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..cac128c962bd8bfd511c3838d35f306093d7278f GIT binary patch literal 565 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4Cds5G4s#E@8jan9S%22Ok&_s;x3eAG~2 z(Vv!!vrVF^gxI-Q3sN$@qO@X^xH5AS(^K`c3R2U#{J0b>63va0Qj?NQQj#o&lhcAw|J=fzPLb1psQ%#Zr`1j4@|TknBLu2 g|3u?**YcIjMuJ={ALdVL0EYX5-Ak^lFjZg#0D3K<-2eap literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_long_text_01.txtproto b/test-cases/chat_item_standard_message_long_text_01.txtproto new file mode 100644 index 00000000..ad0a1d75 --- /dev/null +++ b/test-cases/chat_item_standard_message_long_text_01.txtproto @@ -0,0 +1,147 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577839 + incoming = IncomingMessageDetails { + dateReceived = 1702291826270 + dateServerSent = 1794124103202 + } + standardMessage = StandardMessage { + longText = FilePointer { + backupLocator = BackupLocator { + digest = <8a72bebb4db939e0342ae035ddbe7fe4> + key = + mediaName = "8a72bebb4db939e0342ae035ddbe7fe4" + size = 891929939 + } + contentType = "image/jpeg" + } + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1831980309920 + sortOrder = 1 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_02.binproto b/test-cases/chat_item_standard_message_long_text_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e4b6a764ea4ba0ba1db4212182928e0835cb7945 GIT binary patch literal 666 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@7kysPu;s$Y7M%aBTr3KEjtYYANQTVeLe%I6V}lfr7t9Pd7Z1_3MX z+-!gMO!q?Hii!e3+5QWK4hj0BjZ1h|+xl3#DIf7{abMKU`t zHAhJx_uzxG5*zNDUb?$N%m3eEC5 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577840 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + pending = Pending {} + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <6dc1e0cd18b0df35d2dda82a4ffea322> + key = <0a038863ebb03fed8486f4196b6e656c> + mediaName = "6dc1e0cd18b0df35d2dda82a4ffea322" + size = 1267987916 + transitCdnKey = "ySkLQGERtwS" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "mkOGiGqMxxp" + height = 2764 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 2028 + } + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1831980309921 + sortOrder = 2 + }, + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1831980309922 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_03.binproto b/test-cases/chat_item_standard_message_long_text_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..d29097f828af82c68ef9d59bafe3bcaa8d3603de GIT binary patch literal 610 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#bsC0x8$Y7M%cyZ3#&jw!nT)Z4C0yh@F z-n!0IiHU + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577841 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent { + sealedSender = true + } + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <222d4808bdaadcf9eaa4908fc733c244> + key = <4a5aa0bbf67baa9066da53caf60c4ec9> + mediaName = "222d4808bdaadcf9eaa4908fc733c244" + size = 1322441015 + transitCdnKey = "uECQWuuuE" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "nzTZMnGMNa" + contentType = "image/gif" + fileName = "cKiDzz" + height = 983 + width = 1577 + } + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_04.binproto b/test-cases/chat_item_standard_message_long_text_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..58deaf87d123a8bbcda22e381ee40afcde53ab4f GIT binary patch literal 602 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6ZSsI-R>$Y7M%baBqx&jwz+T-+Qi0_*3V zTDsa$i6Lq}qYyh6Ye7n;SCm$b5@%v*N@l)(Zh^6uz%{=WW}mEl9`QISthUVY?lWi* za1ix)A{E41n3ofn#O24OV4jj>W@egdYG$66lAL6im~3WYnrM-jnv#@aWSN{~BETRe zpm&{f+H|k4%a=r^a;Z*ue^E)Gc3bMx^uMR2jcl*+uEgF}*mak+s660d|Fn>~m V0E@)p-Ak^lFjZ)n+j#Jz830gIt| + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577842 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent {} + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + backupLocator = BackupLocator { + digest = <7db665e567fdcb1ac685a8aedbd29cb4> + key = <2ed70996974af5a7a459650a2590efd1> + mediaName = "7db665e567fdcb1ac685a8aedbd29cb4" + size = 891929939 + } + caption = "qnlQb" + contentType = "audio/mp3" + height = 3428 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 21 + } + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1831980309923 + sortOrder = 1877305478784 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_05.binproto b/test-cases/chat_item_standard_message_long_text_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..8a5ef1bc01b64305f1eea4310e7b130492b52da0 GIT binary patch literal 605 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#RsI;FE$Y7M%d~wd(&jwx`Tx=XHT1*^_ zQOg;HxVbnZ!_!YOV|Rekb(d~1S@RE@*KJ@bomg-p3PtHQ(G3KNs7%9RAXC*H{9_Z7ULAXol#m(02o zS^^!9KY1xGZxsw|p7{Idrrd1?E9WfhVlxusV)-zCVlU8TOLi~0vcgp1%bKMJKARW` Og2X2^0L2$T#2Eo0Qmpa- literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_long_text_05.txtproto b/test-cases/chat_item_standard_message_long_text_05.txtproto new file mode 100644 index 00000000..ea26e3a6 --- /dev/null +++ b/test-cases/chat_item_standard_message_long_text_05.txtproto @@ -0,0 +1,161 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577843 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "zWWFqaczw" + digest = <88e3f24a21a78511518391fbc5b26db6> + key = <4b91d8690f4d11d0201e77f9ba1caec8> + size = 1632210473 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "mkOGiGqMxxp" + } + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1831980309924 + sortOrder = 1817711302260 + }, + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1831980309920 + sortOrder = 1 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_06.binproto b/test-cases/chat_item_standard_message_long_text_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..7a0d4417ba80a1c70077ce967180135e144d941b GIT binary patch literal 593 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6ZJsI-|8$Y7M%a&gYv&jwz+T-+Qi0yh@F z-n!0Iiy>+nqY#7EL`Eg9%-qEERQ;@i)O0O@Ykn)tK3VxZ;&D<~ZJFcUXV4&E#g^=y z=~7kY@P^;xjA#%;l#Gw3uT^c3lZCx*oR40LNvywKUbc69QK_eWeu|I-7f(u+hmU`L zwr^BGZk7O(#G?E6`fnR62^>D8c1KCB|Bb2A(kEy2C-Q0u2qfpcSTF54$>mSAs&wkH L%LadM9IXQYk + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577844 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered {} + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "dzHLOokMZPmj" + cdnNumber = 2 + digest = <10636ce8af1b499244fc7b251b65c6d3> + key = + size = 265383037 + uploadTimestamp = 1776807292834 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/jpeg" + fileName = "cKiDzz" + height = 2764 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 2028 + } + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_07.binproto b/test-cases/chat_item_standard_message_long_text_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..af01ac7f89278c9201786bd562b8c225709eadd6 GIT binary patch literal 567 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4Cbs5Fxi$Y7M%dU4L%&jw!nT)Z4C0_*3V zTDscMh>3$Ss#=Jhi?tvn(<@3VR*5q+H!(d`zaTH&VI_~pb@m{xysD5W-#m9;zeFKB zF3zg(aJRz5#`k l3ODar>zEicFMV-^%}9`o<-`1my#g!}3wJNMvcgn>2>?Y-ppXCn literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_long_text_07.txtproto b/test-cases/chat_item_standard_message_long_text_07.txtproto new file mode 100644 index 00000000..e65fe912 --- /dev/null +++ b/test-cases/chat_item_standard_message_long_text_07.txtproto @@ -0,0 +1,159 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577845 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "zWWFqaczw" + cdnNumber = 3 + digest = + key = + size = 1788482179 + uploadTimestamp = 1781666258121 + } + caption = "nzTZMnGMNa" + contentType = "image/png" + height = 983 + width = 1577 + } + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1831980309921 + sortOrder = 2 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_08.binproto b/test-cases/chat_item_standard_message_long_text_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..abf3caaf227c0c8ed71e71226f83da1d56f2c29e GIT binary patch literal 581 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=ysI;6B$Y7M%c5%+z&jwy>Tr3 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577846 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read {} + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "qnlQb" + contentType = "image/gif" + fileName = "mkOGiGqMxxp" + height = 3428 + incrementalMac = + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 21 + } + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1831980309922 + }, + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1831980309923 + sortOrder = 1877305478784 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_09.binproto b/test-cases/chat_item_standard_message_long_text_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..d108e5afca17c49857c90381b7333bc4d7e24670 GIT binary patch literal 444 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nMQUFqn65B7%dHdPGi=T^^gGJ!R;@4Z( OnOZS%Fh(&6F#rHIwQ#He literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_long_text_09.txtproto b/test-cases/chat_item_standard_message_long_text_09.txtproto new file mode 100644 index 00000000..fc29960c --- /dev/null +++ b/test-cases/chat_item_standard_message_long_text_09.txtproto @@ -0,0 +1,137 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577847 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1833527071192 + viewed = Viewed { + sealedSender = true + } + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_10.binproto b/test-cases/chat_item_standard_message_long_text_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b799e1b1882787ca1958316d30eb7de69e23d575 GIT binary patch literal 569 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4Cfs5F}q$Y7M%adFPu&jwz+T-+Qi0_*3V zTDscMiXp0Ah@FeIASKf)N-IW*D>FASJyk!eAT^!Kk4wQK(cCC0H7Us?CCSp*GS$G? z#3&I+nx>>ArJARung}pR3EVV^zZ13be9;DWi-)T3iwl$lx{CJg_T6duz(nhT>D_(x lPc$xfEnmrOB*w+^VgAHkphK4IUUFrHslt~vOAmZD0RRpcq5S{= literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_long_text_10.txtproto b/test-cases/chat_item_standard_message_long_text_10.txtproto new file mode 100644 index 00000000..295526f8 --- /dev/null +++ b/test-cases/chat_item_standard_message_long_text_10.txtproto @@ -0,0 +1,152 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577848 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1695248715439 + viewed = Viewed {} + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + backupLocator = BackupLocator { + digest = <8a72bebb4db939e0342ae035ddbe7fe4> + key = + mediaName = "8a72bebb4db939e0342ae035ddbe7fe4" + size = 891929939 + } + contentType = "image/jpeg" + } + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1831980309924 + sortOrder = 1817711302260 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_11.binproto b/test-cases/chat_item_standard_message_long_text_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..8cb0d9864bba9bc0380a339c9341bdc60a35f231 GIT binary patch literal 668 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@2a$Qu@aTWH3tXyg29WX9F)bE*1_JCx)mO zj6&R8oRQ&aE+Od!o?cp;7?n6Pa}(23^$YUSwFIvDtuXs!<@1QgNny2Rj(49ygMbxx zZnnRBrhB1pMMZ(b8-9;7qCpH%GCpZO8D?SmiI#qz;r8WzZo2vTKDyT7ju965m0Yo0 z3T7$EhN%Y0DTWqF1}SOArYS}#DTx+Fi6&`jsfor$MgmMy0$j`;$*(uqzinyzBAK0+ znxiC;d+@aaRUs`vkhX29=ZtTQC?2a + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577849 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + skipped = Skipped {} + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <6dc1e0cd18b0df35d2dda82a4ffea322> + key = <0a038863ebb03fed8486f4196b6e656c> + mediaName = "6dc1e0cd18b0df35d2dda82a4ffea322" + size = 1267987916 + transitCdnKey = "ySkLQGERtwS" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "mkOGiGqMxxp" + height = 2764 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 2028 + } + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1831980309920 + sortOrder = 1 + }, + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1831980309921 + sortOrder = 2 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_12.binproto b/test-cases/chat_item_standard_message_long_text_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6425d28fa170e92c74f9362610e7872f0be88b4f GIT binary patch literal 608 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#XsC0-C$Y7M%b#czy&jwz+T-+Qi0yh@F z-n!1ziy>+$qY#7E0!Agy%-qEERQ>eKG%L1b?@X7fDug=OR%nLmH3~ftXjk%(^6pW0FQcNriERs?Z6H}7YEK?H` zO)L#8(vr=MjgyT`Oaz#v1iYda?EY50YC_tr;8Wjt{7xzfDCv4|>|J%|=c^?X`i~nQ Za?#kn>GU@iBhFG+=fLpN(o$CoCIDR_s|)}D literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_long_text_12.txtproto b/test-cases/chat_item_standard_message_long_text_12.txtproto new file mode 100644 index 00000000..e2572bf5 --- /dev/null +++ b/test-cases/chat_item_standard_message_long_text_12.txtproto @@ -0,0 +1,154 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577850 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <222d4808bdaadcf9eaa4908fc733c244> + key = <4a5aa0bbf67baa9066da53caf60c4ec9> + mediaName = "222d4808bdaadcf9eaa4908fc733c244" + size = 1322441015 + transitCdnKey = "uECQWuuuE" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "nzTZMnGMNa" + contentType = "image/gif" + fileName = "cKiDzz" + height = 983 + width = 1577 + } + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_13.binproto b/test-cases/chat_item_standard_message_long_text_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..9cf5d622d9f41adc284f75f64862a957943d9571 GIT binary patch literal 597 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6ZIsI;9C$Y7M%eR0m)&jw!nT)Z4C0_*3V zTDscMi;06VY6hbaI~Qv~N~TwoR*e#8VrfcdzJ6|jv6jF!zZGVmtb88vI4P{Q%<=9s zXb^A^^>`u`#9Ek_6PU#1$E9GNl4NFPnrdoho|clFWSE$2W?`CWk(ip2lwxF=oMa-v zASIx8opaiBudmCOM5c17PI!M&NuYLH>eKYUr=^ayu2^^b(wr?Cm%Em)WH#dGV)-zC PVjs}0i*_%$vcePqmsG0M literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_long_text_13.txtproto b/test-cases/chat_item_standard_message_long_text_13.txtproto new file mode 100644 index 00000000..2069d057 --- /dev/null +++ b/test-cases/chat_item_standard_message_long_text_13.txtproto @@ -0,0 +1,158 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577851 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + backupLocator = BackupLocator { + digest = <7db665e567fdcb1ac685a8aedbd29cb4> + key = <2ed70996974af5a7a459650a2590efd1> + mediaName = "7db665e567fdcb1ac685a8aedbd29cb4" + size = 891929939 + } + caption = "qnlQb" + contentType = "audio/mp3" + height = 3428 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 21 + } + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1831980309922 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_long_text_14.binproto b/test-cases/chat_item_standard_message_long_text_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..97b545e3d1e60ad0da053933f3169f6c299e3aca GIT binary patch literal 610 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#bsC0x8$Y7M%b8*hw&jwx`Tx=XHUQ8TJ zQEM25xVbnZ!_!YOV|Rekb(d~1S@RE@*KJ@bomg-p3PtHQ(G3KNs7%9RAXC*H{9_Z7ULAXol#m(02o zS^^!9KY1xGZxsw|p7{Idrrd1?E9WfhVlxusV)-zCQiA}C#NypcuB + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577852 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + longText = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "zWWFqaczw" + digest = <88e3f24a21a78511518391fbc5b26db6> + key = <4b91d8690f4d11d0201e77f9ba1caec8> + size = 1632210473 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "mkOGiGqMxxp" + } + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1831980309923 + sortOrder = 1877305478784 + }, + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1831980309924 + sortOrder = 1817711302260 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_00.binproto b/test-cases/chat_item_standard_message_special_attachments_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e5f99917ce23cfd50f53675dc59d31fdc99a2c6e GIT binary patch literal 546 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@2a(RBB-aF(lSqob&dxfs+u&-826WA2k$M z_^0LKY!gr*L?uflaz!g~CYGjT=IiGc7<2h?DHxlWC7PzCS(+ys8(J7y8YQKerJ5T9 z1q_UglFiZ*1sJ3RB9m=1ug1>&_M`Ae^Q<|KZYT+uWX1oiF>IQ&H?R2r1f^rYG+u05 J`kDz8)&OI+nh^j1 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_00.txtproto b/test-cases/chat_item_standard_message_special_attachments_00.txtproto new file mode 100644 index 00000000..a1bc079e --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_00.txtproto @@ -0,0 +1,144 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577838 + incoming = IncomingMessageDetails { + dateReceived = 1702291826269 + dateServerSent = 1794124103201 + read = true + sealedSender = true + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.VOICE_MESSAGE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = <346a5ff97c318292bd6e73ff9022c6fa> + key = <59633d69d55d99f6f871f8839a9ce2d8> + mediaName = "346a5ff97c318292bd6e73ff9022c6fa" + size = 761879400 + } + contentType = "audio/mp3" + } + wasDownloaded = true + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_01.binproto b/test-cases/chat_item_standard_message_special_attachments_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..4c43e232d5b2438ea58c840b402bdde147c89783 GIT binary patch literal 642 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@31GsPu#p#E@8jan9S%22Ok&_s;x3eAG~2 z(Vv!!vrVFoF-mP<O$gkuI=Tfk= zG)XbCG&MA{Ofxn&H8C|wv^2Few@gV*Ge}OgOfeE*k`jnzNs+x(BHt*&_piVvU44a; zz)WAwz|7C3u3l58&wbDH@{-20vs*e@j93d&GQFZK7zCJ%1i4r~%%9W%jKr-gKJ+{? HQeXrC#p}0) literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_01.txtproto b/test-cases/chat_item_standard_message_special_attachments_01.txtproto new file mode 100644 index 00000000..560b5558 --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_01.txtproto @@ -0,0 +1,158 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577839 + incoming = IncomingMessageDetails { + dateReceived = 1702291826270 + dateServerSent = 1794124103202 + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.BORDERLESS + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <994d295169f375454a95979def0ce9d2> + key = <5d04641dda741f81140efe703c6727a8> + mediaName = "994d295169f375454a95979def0ce9d2" + size = 1093478118 + transitCdnKey = "pdiJZ" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "FwzenIneLV" + height = 1183 + incrementalMac = <66a1e4dfbdea011a4c4f4cdd16292569> + incrementalMacChunkSize = 2048 + width = 1929 + } + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1744320599093 + sortOrder = 1 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_02.binproto b/test-cases/chat_item_standard_message_special_attachments_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f6d544f1a7b1b37a1c7951d520649dfd92fe58c7 GIT binary patch literal 641 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@318sPvc-$Y7M%aBTr3KEikd-Dvk)w$@6k?_6T-(#O6^K#1`)1;^I>fCFA4nu9c>v zo2i$hn{V%~QfD7kVqW0kXJ}jEYRnbQrC^?%WMX1sW@u`emSkpXm}qHgY-(hhl46>Y zXqlL3ZYjVlC2&f?!|wZnsA-~C*6#f_BW8+{K+P7H#K_;NQd3P;@5ZiNRjIM2{qhNB zBhJY1G?$R{0#7dsCIMy%Mk7HkmJjnM_6o2_Y+Lc6=aG>DlMz2ys1N9`?O-7Q@XE6P literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_02.txtproto b/test-cases/chat_item_standard_message_special_attachments_02.txtproto new file mode 100644 index 00000000..bd3d2e26 --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_02.txtproto @@ -0,0 +1,167 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577840 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + pending = Pending {} + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.GIF + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <7cb4446159fb651a953525dd5da9aa79> + key = + mediaName = "7cb4446159fb651a953525dd5da9aa79" + size = 957662124 + transitCdnKey = "YWfDTgpIJ" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "WHDDLp" + contentType = "video/mp4" + fileName = "sXSlnJDCHS" + height = 126 + width = 866 + } + wasDownloaded = true + } + ] + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1744320599094 + sortOrder = 2 + }, + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1744320599095 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_03.binproto b/test-cases/chat_item_standard_message_special_attachments_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..8d72755ca86f508414c9161edf8527575c484d11 GIT binary patch literal 585 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=!sI;09$Y7M%cyZ3#&jw!nT)Z4C0yh@F z-n!0IiHUhV<~h$qKCIk+@8+uuFYy^za~OCin7JSj2J(!k6tCDGJ4IWf)5AlW1}+0wuu$tWc? z)l`5%No32C>2PkrO@JIS!=-cyYi+m^ltIuig1 C>7`!) literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_03.txtproto b/test-cases/chat_item_standard_message_special_attachments_03.txtproto new file mode 100644 index 00000000..64f6354a --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_03.txtproto @@ -0,0 +1,153 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577841 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent { + sealedSender = true + } + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.VOICE_MESSAGE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = + key = <29a3b2f195b0f63bd4c8184986860917> + mediaName = "f67baa9066da53caf60c4ec900b2dee5" + size = 761879400 + } + caption = "lOcSumkOGiGq" + contentType = "audio/mp3" + height = 3189 + incrementalMac = <66a1e4dfbdea011a4c4f4cdd16292569> + incrementalMacChunkSize = 2048 + width = 665 + } + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_04.binproto b/test-cases/chat_item_standard_message_special_attachments_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..06c9653f8c394e5153fa44325efeaa8ec80bd160 GIT binary patch literal 579 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=usI-(3$Y7M%baBqx&jwz+T-+Qi0_*3V zTDsa$i6N?kQ7VrsLy0ppH!(d`zaTH&ip#CMDmBkDFV!b3O2)@4NXN`9Rj6=*RqxuME0&Tz$qWz$C$FB*w+^Vg95B0TziJD?ao*GE#VUal@YnCIHmvr#Jur literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_04.txtproto b/test-cases/chat_item_standard_message_special_attachments_04.txtproto new file mode 100644 index 00000000..e430ca9d --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_04.txtproto @@ -0,0 +1,157 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577842 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent {} + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.BORDERLESS + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "TYzPC" + digest = + key = <2ed70996974af5a7a459650a2590efd1> + size = 1557486602 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "image/png" + fileName = "FwzenIneLV" + } + wasDownloaded = true + } + ] + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1744320599096 + sortOrder = 1812737042662 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_05.binproto b/test-cases/chat_item_standard_message_special_attachments_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..77975b34aec8b2563c71224ee1de1891940a6a67 GIT binary patch literal 632 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@5N@sC0`F$Y7M%d~wd(&jwx`Tx=XHT1*^_ zQHL0%rZ95#Gb(YGWu~O&>*p4jXbGe(d~$#9D@G|Ff1kTznyQ%w4FXnN#Sy_dd0sBg z9>ETs{2uc;gBYS@d^~-vYJ;3C>~-UO^ioV>{q^#)z2l2YJ?-;Tgsi#PDjfYYGYbWn zBtFmicKV=^l7KM3_i^uuH!}Hs1urPbmH*Td=s2JKtK;z}FU94pf`QEwe;eFd`u`l8 r0JD)87t4qF6MKP<-nrsK&m$v+?y1k7T{1Hg1c^^-0E%ygh%*8J?ozjD literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_05.txtproto b/test-cases/chat_item_standard_message_special_attachments_05.txtproto new file mode 100644 index 00000000..4578012e --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_05.txtproto @@ -0,0 +1,170 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577843 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.GIF + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xAOiiq" + cdnNumber = 2 + digest = <88cf6bfa88e3f24a21a78511518391fb> + key = <130f4bc74b91d8690f4d11d0201e77f9> + size = 1776276186 + uploadTimestamp = 1735594446451 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "video/mp4" + fileName = "sXSlnJDCHS" + height = 1183 + incrementalMac = <66a1e4dfbdea011a4c4f4cdd16292569> + incrementalMacChunkSize = 2048 + width = 1929 + } + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1744320599097 + sortOrder = 1877653162635 + }, + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1744320599093 + sortOrder = 1 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_06.binproto b/test-cases/chat_item_standard_message_special_attachments_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b36698a77fd547e111195e877125ff64901c2992 GIT binary patch literal 532 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4xPssK`q5?e0LdHdPGi*p32J3M0Zs0(5X_i%CXDG;*aVhxF`3UC%+miYf^`iggk zN&-r9{clW_mOeSFKauxqT9dn$z + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577844 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered {} + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.VOICE_MESSAGE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "TYzPC" + cdnNumber = 3 + digest = + key = <221e8fec3522a5e4cd2f910df5668247> + size = 1124556685 + uploadTimestamp = 1713239357823 + } + caption = "WHDDLp" + contentType = "audio/mp3" + height = 126 + width = 866 + } + wasDownloaded = true + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_07.binproto b/test-cases/chat_item_standard_message_special_attachments_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..cf2fb32a8edaa2b2cd13540b488f11ebb632d9cd GIT binary patch literal 565 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4Cds5G4s$Y7M%dU4L%&jw!nT)Z4C0_*3V zTDscMh>3$Ss!}S2D?y1fGdD3kRlguFT}vQs;gkD&UolGg`1{-y(^SngXb`aCax1S& z&GXDl^$ByB$?EY{B8Vr)KRLKGH{0Jm)4ecC#wX1u!z?U6(bCT|+`in;O*cQ^N7p*s hF~TChQi?%<$w-ik<-`1my#g!}+g5z&d1R!(1OTxRnj!!I literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_07.txtproto b/test-cases/chat_item_standard_message_special_attachments_07.txtproto new file mode 100644 index 00000000..f636563a --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_07.txtproto @@ -0,0 +1,158 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577845 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.BORDERLESS + pointer = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "lOcSumkOGiGq" + contentType = "image/png" + fileName = "FwzenIneLV" + height = 3189 + incrementalMac = <66a1e4dfbdea011a4c4f4cdd16292569> + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 665 + } + } + ] + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1744320599094 + sortOrder = 2 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_08.binproto b/test-cases/chat_item_standard_message_special_attachments_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..1652d31e6881d5eca78f679a7aa955f63179cc47 GIT binary patch literal 576 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=%sI-U?$Y7M%c5%+z&jwy>Tr3DVug7u%M;23g5y#Lva@ kVgAHEAbb0Y4?T~JjKn|!lNtnABzAxW6rNq&@aKUE02myl4*&oF literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_08.txtproto b/test-cases/chat_item_standard_message_special_attachments_08.txtproto new file mode 100644 index 00000000..e895d537 --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_08.txtproto @@ -0,0 +1,159 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577846 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read {} + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.VOICE_MESSAGE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = <346a5ff97c318292bd6e73ff9022c6fa> + key = <59633d69d55d99f6f871f8839a9ce2d8> + mediaName = "346a5ff97c318292bd6e73ff9022c6fa" + size = 761879400 + } + contentType = "audio/mp3" + } + wasDownloaded = true + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1744320599095 + }, + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1744320599096 + sortOrder = 1812737042662 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_09.binproto b/test-cases/chat_item_standard_message_special_attachments_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..4d7391fbe295e31de23e061b385adee13d7d7cd1 GIT binary patch literal 624 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@5N?sC0=D$Y7M%esRv*&jw!nT)Z4C0yh@F z-n!1ziiv|UYBQtM21c&cj7prDxryni`UQFES^{YcpWNU3ic!kP-{-EFrfQ}^gMby6 zTX|J#o@ZXFPnbg|zsG#eAciOzpEREgv#|U`OFz$W`*J@w-TZtXUF&ei2#fqmu5c~| zOG}d!BTG|5Gs`q%b5j#jlSE5XOLNPV)HH+SRLc}20VXMdSe6voTP5<1B7FY}Y|_|V6tZe`Q literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_09.txtproto b/test-cases/chat_item_standard_message_special_attachments_09.txtproto new file mode 100644 index 00000000..513bba56 --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_09.txtproto @@ -0,0 +1,157 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577847 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1833527071192 + viewed = Viewed { + sealedSender = true + } + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.BORDERLESS + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <994d295169f375454a95979def0ce9d2> + key = <5d04641dda741f81140efe703c6727a8> + mediaName = "994d295169f375454a95979def0ce9d2" + size = 1093478118 + transitCdnKey = "pdiJZ" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "FwzenIneLV" + height = 1183 + incrementalMac = <66a1e4dfbdea011a4c4f4cdd16292569> + incrementalMacChunkSize = 2048 + width = 1929 + } + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_10.binproto b/test-cases/chat_item_standard_message_special_attachments_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..341a562f259a15d91262790383cd2e4e4172cc7e GIT binary patch literal 636 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@31AsC17J$Y7M%adFPu&jwz+T-+Qi0_*3V zTDscMiXrMCqtr4+uKA2goMo9QsrmZ31twNp#Sy_dd0sBg9>ETe*gWcj*up(rTzm?m zWPIG+wbFESGxc(G^X=VL>g=OR%nLmH3~ftXjk%(^6wH&8OiWD73{5T5lFUpE6D>`R zO^r-bQcP14EfW*XEd`jR1WqY<*nM9RHBI!&+P&Xq#7t2VsM+F@82LL@YO1N~-Po0@ zDmB)$Up~QX#2Fc$<`R-#;OS+-B)}}eXe7qP@?rkOUZ7uguK3XN$Vj1k>a%B;%mA~X Bv#0<7 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_10.txtproto b/test-cases/chat_item_standard_message_special_attachments_10.txtproto new file mode 100644 index 00000000..07837369 --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_10.txtproto @@ -0,0 +1,163 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577848 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1695248715439 + viewed = Viewed {} + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.GIF + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <7cb4446159fb651a953525dd5da9aa79> + key = + mediaName = "7cb4446159fb651a953525dd5da9aa79" + size = 957662124 + transitCdnKey = "YWfDTgpIJ" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "WHDDLp" + contentType = "video/mp4" + fileName = "sXSlnJDCHS" + height = 126 + width = 866 + } + wasDownloaded = true + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1744320599097 + sortOrder = 1877653162635 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_11.binproto b/test-cases/chat_item_standard_message_special_attachments_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..dc1e490b63c27c80cbd204ab31421ee67dc03b7a GIT binary patch literal 614 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#asC0r6$Y7M%d2!C$&jwy>Tr3nkTDJlonh#gzoURj-1&|tj0Cw@KFpug0CeZp W6(4#Y87V-8CiV)jNNj@$F#!M~W3V3p literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_11.txtproto b/test-cases/chat_item_standard_message_special_attachments_11.txtproto new file mode 100644 index 00000000..f90c5815 --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_11.txtproto @@ -0,0 +1,164 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577849 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + skipped = Skipped {} + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.VOICE_MESSAGE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = + key = <29a3b2f195b0f63bd4c8184986860917> + mediaName = "f67baa9066da53caf60c4ec900b2dee5" + size = 761879400 + } + caption = "lOcSumkOGiGq" + contentType = "audio/mp3" + height = 3189 + incrementalMac = <66a1e4dfbdea011a4c4f4cdd16292569> + incrementalMacChunkSize = 2048 + width = 665 + } + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1744320599093 + sortOrder = 1 + }, + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1744320599094 + sortOrder = 2 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_12.binproto b/test-cases/chat_item_standard_message_special_attachments_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..bf639e3abb5f6365a930d39f817ad8db25c6d74b GIT binary patch literal 554 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6|PRO(>_G8iRxU7Yjwvw;^c7dHosz>USP zx2`kwVu&h`%HzsV;>^rVOi$G>$V<24ax1S&&GXDl^$ClT@$m}MF*8fmt8=a>RrSgD z@vR9qQZ)___slQO6*A;v4T-D@a8?q~yUsany4Tm`OCnRbR42T@s3maZ7guES$(PK3 XZcH)yF@NJLgRUJ{pRo!sNiYHcbg7%# literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_12.txtproto b/test-cases/chat_item_standard_message_special_attachments_12.txtproto new file mode 100644 index 00000000..a6ac160b --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_12.txtproto @@ -0,0 +1,151 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577850 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.BORDERLESS + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "TYzPC" + digest = + key = <2ed70996974af5a7a459650a2590efd1> + size = 1557486602 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "image/png" + fileName = "FwzenIneLV" + } + wasDownloaded = true + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_13.binproto b/test-cases/chat_item_standard_message_special_attachments_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e35eb7e2ec1269b46073be1d5ab514f391a0cfdd GIT binary patch literal 613 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#SsC1kW$Y7M%eR0m)&jw!nT)Z4C0_*3V zTDscMi;06VY6YXz6h^LoMkUU&%#_r8{oDc*ErGO!Pwwx1#VF6V3UW!Sqzg}LpcYIN)r+t2kkTn-u zg` + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577851 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.GIF + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xAOiiq" + cdnNumber = 2 + digest = <88cf6bfa88e3f24a21a78511518391fb> + key = <130f4bc74b91d8690f4d11d0201e77f9> + size = 1776276186 + uploadTimestamp = 1735594446451 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "video/mp4" + fileName = "sXSlnJDCHS" + height = 1183 + incrementalMac = <66a1e4dfbdea011a4c4f4cdd16292569> + incrementalMacChunkSize = 2048 + width = 1929 + } + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1744320599095 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_special_attachments_14.binproto b/test-cases/chat_item_standard_message_special_attachments_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..280cc2cf237a5607cd6facfcc3d788572930e256 GIT binary patch literal 578 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=*sI-I;$Y7M%b8*hw&jwx`Tx=XHUQ8TJ zQ9X=OQCuNPoQb6=nfdy;1;!4K*gWcj*up(rTzm?IthiW1BC7(N1(+rNf11AHouQI| zl3f2AQ>CR(&gxI({hHR~t|hQu+H;c2pK4X<)MJ-_-kYCd(7S)`3>Hw>8i{eSe3(C} mL4ZYK$BGXVlPn5PKbE-)Mw8wnE?Ru8K)-z literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_special_attachments_14.txtproto b/test-cases/chat_item_standard_message_special_attachments_14.txtproto new file mode 100644 index 00000000..e3bea755 --- /dev/null +++ b/test-cases/chat_item_standard_message_special_attachments_14.txtproto @@ -0,0 +1,167 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577852 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.VOICE_MESSAGE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "TYzPC" + cdnNumber = 3 + digest = + key = <221e8fec3522a5e4cd2f910df5668247> + size = 1124556685 + uploadTimestamp = 1713239357823 + } + caption = "WHDDLp" + contentType = "audio/mp3" + height = 126 + width = 866 + } + wasDownloaded = true + } + ] + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1744320599096 + sortOrder = 1812737042662 + }, + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1744320599097 + sortOrder = 1877653162635 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_00.binproto b/test-cases/chat_item_standard_message_standard_attachments_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f1cb26b8c156f45981d33b7786766e3bb2c59d8f GIT binary patch literal 545 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@2a#RBC1fF(lSqob&dxfs+u&-826WA2k$M z_^0LKY!gr*L?uZjaK$KbW#%TPr|M@Fq^5KE0plYn$-p=*HO0cj!Ys|i(9$f)EY-}^ zEZM-)+}zO2EKPtxNCVws@_!+c)h{?ZA;r1$?Uw;9L{pFe2wX! J{vQDbH2{QemX-hj literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_00.txtproto b/test-cases/chat_item_standard_message_standard_attachments_00.txtproto new file mode 100644 index 00000000..e8c3c47a --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_00.txtproto @@ -0,0 +1,144 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577838 + incoming = IncomingMessageDetails { + dateReceived = 1702291826269 + dateServerSent = 1794124103201 + read = true + sealedSender = true + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = + key = <18e707cf7cb4446159fb651a953525dd> + mediaName = "ebb03fed8486f4196b6e656c0977166f" + size = 413137175 + } + contentType = "image/jpeg" + } + wasDownloaded = true + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_01.binproto b/test-cases/chat_item_standard_message_standard_attachments_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..886ccd3ffb0e3cb71b6457c7639851886c0aa423 GIT binary patch literal 950 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4ClqBH}{kXV0l&fCuhPJA5q&ip@o)KFm2 zpO%ZWO`?7=3o%G-VdUD#sKl9>o0y)eUyzrsC7`snq4UOOIqu#B&#AF1X6hL<2w3q| zr8>Gs`6s#MRfRidwMyTlK05X}5w; zedF;vsU)DJ>%p;i)t#TOmQ3hBZhXi^8J3TYa ziqqFGF|#l)Cosw3m!QXA!64r3V(-+vl8nl-s$e%ipiAA|wbFESGxc(G^X=VL>g=OR z%nLmH3~ftXjk&_P6wFhS%*;$vP0h^HQj(Jl6O+v>OcN~uz6~vqj_gf~_}Mj95LLJe;E}m?Rjb z8X39jl{gbiQ!?}Qa|?{IhOfgE36Gf)LF@$)9wkv3DO`SB3Z|B(sYZ#3=0>JThNf?O;g=1*z>Cj6}{KJ+{?QeXrCrUNF8 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_01.txtproto b/test-cases/chat_item_standard_message_standard_attachments_01.txtproto new file mode 100644 index 00000000..2587c009 --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_01.txtproto @@ -0,0 +1,199 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577839 + incoming = IncomingMessageDetails { + dateReceived = 1702291826270 + dateServerSent = 1794124103202 + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <222d4808bdaadcf9eaa4908fc733c244> + key = <4a5aa0bbf67baa9066da53caf60c4ec9> + mediaName = "222d4808bdaadcf9eaa4908fc733c244" + size = 522457189 + transitCdnKey = "WyYPnka" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "zeAEZObFnzTZMn" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <7db665e567fdcb1ac685a8aedbd29cb4> + key = <2ed70996974af5a7a459650a2590efd1> + mediaName = "7db665e567fdcb1ac685a8aedbd29cb4" + size = 1261260923 + transitCdnKey = "IBHCZ" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "ksKenthyvzSFN" + contentType = "image/gif" + fileName = "MNaiqnlQb" + height = 2301 + width = 2298 + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = <595e2aa725b1e780a6681e10130f4bc7> + key = <0f4d11d0201e77f9ba1caec888cf6bfa> + mediaName = "595e2aa725b1e780a6681e10130f4bc7" + size = 413137175 + } + caption = "pXHtZhd" + contentType = "audio/mp3" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3092 + } + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1744320599093 + sortOrder = 1 + } + ] + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_02.binproto b/test-cases/chat_item_standard_message_standard_attachments_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..7e4a2aa3f8ef8eaa7d9d2c3bf7a64d3c78266603 GIT binary patch literal 1040 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@7ktqVx&GV3gQ!an9S%23~AjEF3IS3{iJj zgxI-Q3sN$@qNEDBa+NsCGE-9X^>YhMtoW)@9bKdRlic#ELZW>0qGWu$f^^KxQuXSb zD@s*;@_l@3f{j#-!^1uEi*tpHxY#NxTq69VlmvXXC;P2jZTziSV`C7z(AKqD0y2VM zmRg^v7BDlatGKqG|F^-l!%vR0Nia%HWaR2&RN~6aO-xVK&niew*Ah@#+t7JqvmAGC zg6GuO6*Kh=8U(C3ef<(M3-fXUlN_$ddbG+1F#uiT>1$OR1W*2*>=9OermQ@A2`3YIW zd@H~#vGL@^cMr{!1opnaGTUX#iHmdGPd8M!sL$6DIQlu;p(O5T#MhovqOsp+$QfLn z+w%dK;DA=d!>mZpOvCPHwBUD`BH=MpB8a^p!lNWABL(RHG@lH!u>3?zKhJRcaz8iS z{Cpo>>u|>ii~LF{2B`$D802u}@&jhAq$C65wA2&}6AQC66GKb0B(qdAQ?q0POLKEW zGqW@S1}OoF=j`Wewzwol{!W#eYN~oyN#OMc`?oD^UnH~hQgb-V#qu?#fBJs}=m{f1 gE|w4TC-w@kNNij2q34m20+SIxSf~$}%(jDt0JPIZr~m)} literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_02.txtproto b/test-cases/chat_item_standard_message_standard_attachments_02.txtproto new file mode 100644 index 00000000..1be9927b --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_02.txtproto @@ -0,0 +1,230 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577840 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + pending = Pending {} + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + digest = <1c11f4a53bc87b1036327e78d6bf0ffb> + key = <4cb7634ea9ab33f68328b1520712b5ad> + size = 1761157590 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "zeAEZObFnzTZMn" + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "cESWu" + cdnNumber = 2 + digest = <01480e9e27dcdcb674f34922363753d4> + key = <820ab936183555ed8e40d2431d317e2d> + size = 1134316339 + uploadTimestamp = 1708089907411 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/jpeg" + fileName = "MNaiqnlQb" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + cdnNumber = 3 + digest = + key = + size = 503516885 + uploadTimestamp = 1881696134321 + } + caption = "ksKenthyvzSFN" + contentType = "image/png" + height = 2301 + width = 2298 + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "pXHtZhd" + contentType = "image/gif" + fileName = "zeAEZObFnzTZMn" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 3092 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = + key = <18e707cf7cb4446159fb651a953525dd> + mediaName = "ebb03fed8486f4196b6e656c0977166f" + size = 413137175 + } + contentType = "image/jpeg" + } + wasDownloaded = true + } + ] + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1744320599094 + sortOrder = 2 + }, + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1744320599095 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_03.binproto b/test-cases/chat_item_standard_message_standard_attachments_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..674be4dfe53e4b037dc16224d9fa86b0c3474b32 GIT binary patch literal 641 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@318sPvc-$Y7M%cyZ3#&jw!nT)Z4C0yh@F z-n!0IiHUIkC{Hy3AQc$!N{dV!~x)D}jrjf_g1nYoGSsrm(Z=~@CxYa2RmY?kBh zP4Ju=yJDuEL4$x5UsbB3Ym|SITV7R2ly9EH6pq#FXST%hbd~6H5b&v}AK*<76Wf69FbE z0k5b9yT4VhnvixY_|!KZzmrM=O1d5#dsp50`D)38{^Q1nTr{38nDCR)h&{YAG9WKI H(SiX0{YAE^ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_03.txtproto b/test-cases/chat_item_standard_message_standard_attachments_03.txtproto new file mode 100644 index 00000000..effca7bd --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_03.txtproto @@ -0,0 +1,160 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577841 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent { + sealedSender = true + } + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <222d4808bdaadcf9eaa4908fc733c244> + key = <4a5aa0bbf67baa9066da53caf60c4ec9> + mediaName = "222d4808bdaadcf9eaa4908fc733c244" + size = 522457189 + transitCdnKey = "WyYPnka" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "zeAEZObFnzTZMn" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_04.binproto b/test-cases/chat_item_standard_message_standard_attachments_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..fac230911bee36d4e40530679a8fa297870dc0d0 GIT binary patch literal 884 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@5N>taObT$Y7M%baBqx&jwz+T-+Qi0_*3V zTDsa$i6Lqyv($1%u0@PWoSC_a>8bkZnQ2y>zJ7_Bg?TxFNe;gRJ^l&?@n#o$r{gDL>+qrX-~pStci$2rx?t=w0WWHr?y%@+Fa}T&fe^UsMvP-In?^{qJe1 zW34OJ-M%zui^lH-TW_)$v3fdrI7eA9Nia$^GIG@`aVD0gWajJV78q*@D6MViys=r1 zyEnmeYV3-cdIk*w4pSsNW=aIH7esiJL}jFK`Ee + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577842 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent {} + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <7db665e567fdcb1ac685a8aedbd29cb4> + key = <2ed70996974af5a7a459650a2590efd1> + mediaName = "7db665e567fdcb1ac685a8aedbd29cb4" + size = 1261260923 + transitCdnKey = "IBHCZ" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "ksKenthyvzSFN" + contentType = "image/gif" + fileName = "MNaiqnlQb" + height = 2301 + width = 2298 + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = <595e2aa725b1e780a6681e10130f4bc7> + key = <0f4d11d0201e77f9ba1caec888cf6bfa> + mediaName = "595e2aa725b1e780a6681e10130f4bc7" + size = 413137175 + } + caption = "pXHtZhd" + contentType = "audio/mp3" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3092 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + digest = <1c11f4a53bc87b1036327e78d6bf0ffb> + key = <4cb7634ea9ab33f68328b1520712b5ad> + size = 1761157590 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "zeAEZObFnzTZMn" + } + wasDownloaded = true + } + ] + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1744320599096 + sortOrder = 1812737042662 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_05.binproto b/test-cases/chat_item_standard_message_standard_attachments_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..56421fdfd6c4096d29613e44282f77e0a1f777ea GIT binary patch literal 1110 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6ZQs6{MzX2`H^?=)AF6j=ML(b8760nR*5d0#=;9eu~5& zkxJx>RpNxWs30%h;g_JtU%?>W>|*cKypoK{vZ`P=KOt)_wu%au2>&PnW{Hg_FTQ(d zrX;ZU{gv4+TTWb@<9@oK!bN?)mcY@^*$yRfMfD|Wz=#K05f8H> zJu?lvpZTg%9bKdRlic#ELZW>09HvNk%#;XXFNp9ciONU;`ajJl!z?U6(bCT|+`in; zO*cQ^N7p*sF~TChQi?$;fhz_%T)F&!NjxdZz&I^6#lpnGEX~Bw(k#g=)y&i^*}&4= z+|bM{O@Kj4K;k+3`I;>*iIKlkrKXyy-c=HKy}|x%OWPO8?7Y+*&T_GQjp?8M9|3t{ z3nSM?MwmB%Aw`@w5b=k{{ale;3PwgoDJB*M7D*|Ii7ClxmZ^z}CYA;kY02is#>qw| zCIU=S0$x!Ic7Lm0H6iU*@TqS+ekYX#lyp5f_O80~^VO0G{l|?DxoA9HFySYo5qo%L wWI$eaq6LGI7#GWj`4fAANpk0k4?T~J6uPHAdv?jpNDw4GsR1ay6(Y_E0IgnMbpQYW literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_05.txtproto b/test-cases/chat_item_standard_message_standard_attachments_05.txtproto new file mode 100644 index 00000000..74d23daa --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_05.txtproto @@ -0,0 +1,239 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577843 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "cESWu" + cdnNumber = 2 + digest = <01480e9e27dcdcb674f34922363753d4> + key = <820ab936183555ed8e40d2431d317e2d> + size = 1134316339 + uploadTimestamp = 1708089907411 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/jpeg" + fileName = "MNaiqnlQb" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + cdnNumber = 3 + digest = + key = + size = 503516885 + uploadTimestamp = 1881696134321 + } + caption = "ksKenthyvzSFN" + contentType = "image/png" + height = 2301 + width = 2298 + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "pXHtZhd" + contentType = "image/gif" + fileName = "zeAEZObFnzTZMn" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 3092 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = + key = <18e707cf7cb4446159fb651a953525dd> + mediaName = "ebb03fed8486f4196b6e656c0977166f" + size = 413137175 + } + contentType = "image/jpeg" + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <222d4808bdaadcf9eaa4908fc733c244> + key = <4a5aa0bbf67baa9066da53caf60c4ec9> + mediaName = "222d4808bdaadcf9eaa4908fc733c244" + size = 522457189 + transitCdnKey = "WyYPnka" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "zeAEZObFnzTZMn" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1744320599097 + sortOrder = 1877653162635 + }, + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1744320599093 + sortOrder = 1 + } + ] + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_06.binproto b/test-cases/chat_item_standard_message_standard_attachments_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..7556c5bc55bd6d9c2de355ffc911ee214648fa19 GIT binary patch literal 622 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@5N^sC0o5$Y7M%a&gYv&jwz+T-+Qi0yh@F z-n!0Iiy>+=qYyh6Ye7n;SCrIpMy^GSN}QRwiRr2O>6vL(oW6dEnT2^dfk_U(1U>!= z2JvPWd#C1=WK@<_1-to0$@sXtYo+PvX6ohW=G(ig)Y(Usm=}2X8QPY(8gqqnDVV1u znVFfUnwpuXr6eaACMKI%m?l~zrlusN7+EGKnFugT3FuwtoHpI->+&U$sa&cP-d|J_ osNI(OH2v>ssbj4x*4@4|XN$(~1zT^j7_oXfc{oQ|Fi9{10RKp^asU7T literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_06.txtproto b/test-cases/chat_item_standard_message_standard_attachments_06.txtproto new file mode 100644 index 00000000..9b0d4536 --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_06.txtproto @@ -0,0 +1,158 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577844 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered {} + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <7db665e567fdcb1ac685a8aedbd29cb4> + key = <2ed70996974af5a7a459650a2590efd1> + mediaName = "7db665e567fdcb1ac685a8aedbd29cb4" + size = 1261260923 + transitCdnKey = "IBHCZ" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "ksKenthyvzSFN" + contentType = "image/gif" + fileName = "MNaiqnlQb" + height = 2301 + width = 2298 + } + wasDownloaded = true + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_07.binproto b/test-cases/chat_item_standard_message_standard_attachments_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e2f2a73a296d1f3fed67ea3caa97d4fcecccb1a6 GIT binary patch literal 872 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#YtaOSQ$Y7M%dU4L%&jw!nT)Z4C0_*3V zTDscMh>3$SYBjSEHy3AQc$!N{dV!~xR3jr-y%J|)X-a0ker|!WmVnaQhRz$C<+ytj zJg3I4n5k#bAmA`X!egdH5PLy{M@dvh3YQ<3f~loxs!?L1xshp-VXC=>L86(Ng<-0p zfuXTMnn_Z!xd4Nd0Kc!`1qHeCpSxt%o#;59{Yyz8GEQr`>c-~{%QEByg!#RXYfS(2 z{|KX0Ay=*vXIW-SD#!^YR(w^dj;>MuNp5*nAyK}0Q8GSWK{{q;sd{zJ6{V^^`98ii z!A7da;o+Y7#koR8Tx=B;E)o7wN&-IHll@k%HvZPEu`!5UXzN-n0U5zBORY~-3z!+z zRb1Q8|J&f&;U~x0Bp9V8GII4XDsg4zCZ?zAXBDKTWA(Tdr>|dPW?^1VV3NZXS&vrv zAO@goJbkTdgPbhvb>n>WQcPm~_42a44VKEZqV)-zCVy^&; O#I_Y5dL9`mFaZE`e+2~q literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_07.txtproto b/test-cases/chat_item_standard_message_standard_attachments_07.txtproto new file mode 100644 index 00000000..e8df8943 --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_07.txtproto @@ -0,0 +1,200 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577845 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = <595e2aa725b1e780a6681e10130f4bc7> + key = <0f4d11d0201e77f9ba1caec888cf6bfa> + mediaName = "595e2aa725b1e780a6681e10130f4bc7" + size = 413137175 + } + caption = "pXHtZhd" + contentType = "audio/mp3" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3092 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + digest = <1c11f4a53bc87b1036327e78d6bf0ffb> + key = <4cb7634ea9ab33f68328b1520712b5ad> + size = 1761157590 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "zeAEZObFnzTZMn" + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "cESWu" + cdnNumber = 2 + digest = <01480e9e27dcdcb674f34922363753d4> + key = <820ab936183555ed8e40d2431d317e2d> + size = 1134316339 + uploadTimestamp = 1708089907411 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/jpeg" + fileName = "MNaiqnlQb" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + } + ] + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1744320599094 + sortOrder = 2 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_08.binproto b/test-cases/chat_item_standard_message_standard_attachments_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..525f782796f2e79db37060f5f688d6cd3960cfb9 GIT binary patch literal 1126 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#as&s-C$Y7M%c5%+z&jwy>Tr3VymcdiSUmSV3yc; z^5VOPW=aBk-(Q*SvgO3ZIqs($DqPg(YY80vob6B&cQoQ_&neN^?=$2KuFmcG01RND z74a}D(lgVv1eDe`bl%u3$K9LYIW>00Og)1J0V}?$R7ck+|0K7(s*ot(JclU~9y29^ z*b5>&N}@7SqGWv1d@{_!@)IrnJj3nF{oHi(^L=!!!yO|m@++knq!PGdl(-590R|}niRbL+Yqq!~M*dEf znrf1muY=j9eQTVcr0S6mj0TBJ0sAAH;y) z{ale;3PwgoDJB*M7D*|Ii7ClxmZ^z}CYA;kY02is#>qw|CIU=S0$x!Ic7Lm0H6iU* z@TqS+ekYX#lyp5f_O80~^VO0G{l|?DxoA9HFySYo5qo%LWI$eaq6LH0az?I2aAyNU z--^@MFEO()FDEbwYg_|e>h7+UrlXswm!q3+@2*m3A5~&r;NfRzTjFZW70#t#o|0r{ zW}0ehW}cRkoMf1oY-VAaXpxwjl9Xa(nVe)Iz$_)8cb#+Ebg!?=mqey=sZMx*QAwb7 zTk6yFzo(^+wXRrq`_h~(8ow88y~$$4>gnX+9A&{I!Dz(K#qweP#6Dmm-M->O&m$uv XF_6Hd1_2g{9bf^4XBRj8d0+wnPTXi~ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_08.txtproto b/test-cases/chat_item_standard_message_standard_attachments_08.txtproto new file mode 100644 index 00000000..a938992b --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_08.txtproto @@ -0,0 +1,233 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577846 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read {} + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + cdnNumber = 3 + digest = + key = + size = 503516885 + uploadTimestamp = 1881696134321 + } + caption = "ksKenthyvzSFN" + contentType = "image/png" + height = 2301 + width = 2298 + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "pXHtZhd" + contentType = "image/gif" + fileName = "zeAEZObFnzTZMn" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 3092 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = + key = <18e707cf7cb4446159fb651a953525dd> + mediaName = "ebb03fed8486f4196b6e656c0977166f" + size = 413137175 + } + contentType = "image/jpeg" + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <222d4808bdaadcf9eaa4908fc733c244> + key = <4a5aa0bbf67baa9066da53caf60c4ec9> + mediaName = "222d4808bdaadcf9eaa4908fc733c244" + size = 522457189 + transitCdnKey = "WyYPnka" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "zeAEZObFnzTZMn" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <7db665e567fdcb1ac685a8aedbd29cb4> + key = <2ed70996974af5a7a459650a2590efd1> + mediaName = "7db665e567fdcb1ac685a8aedbd29cb4" + size = 1261260923 + transitCdnKey = "IBHCZ" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "ksKenthyvzSFN" + contentType = "image/gif" + fileName = "MNaiqnlQb" + height = 2301 + width = 2298 + } + wasDownloaded = true + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1744320599095 + }, + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1744320599096 + sortOrder = 1812737042662 + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_09.binproto b/test-cases/chat_item_standard_message_standard_attachments_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..a3e8db2bf3639499b720beb0b30aaa9e6c57671c GIT binary patch literal 579 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=usI-(3$Y7M%esRv*&jw!nT)Z4C0yh@F z-n!1ziiv|Us*O>IL8_6Ft6qsSu{0$!Uq83NSW7@@ZA0gc&2rqm37%79SIpEiXb^Ci zBH=MpB8a^p!lNWABZbS4OTpCAG}S0E(cH*1$uQO2!XVMi%)&6$(7@2xAk8Ex*<64@ wN`T*2@PdL|`OjT4>rQl>&;F$(5E-YnTy^8~hGiLY0>b>>$2F#Z`hSEG09=xu#sB~S literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_09.txtproto b/test-cases/chat_item_standard_message_standard_attachments_09.txtproto new file mode 100644 index 00000000..6d937b97 --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_09.txtproto @@ -0,0 +1,156 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577847 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1833527071192 + viewed = Viewed { + sealedSender = true + } + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = <595e2aa725b1e780a6681e10130f4bc7> + key = <0f4d11d0201e77f9ba1caec888cf6bfa> + mediaName = "595e2aa725b1e780a6681e10130f4bc7" + size = 413137175 + } + caption = "pXHtZhd" + contentType = "audio/mp3" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3092 + } + } + ] + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_10.binproto b/test-cases/chat_item_standard_message_standard_attachments_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..a4c6c6a747f48438f7a305600b0e539af28f85f3 GIT binary patch literal 838 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=)th9m|$Y7M%adFPu&jwz+T-+Qi0_*3V zTDscMiXp0-S%{sBwIC(aD@v-6D_4oLEHfoFUq83N#EP#f)zLM|KglhxDkRD`FG|M8 zD@e!8ELE@0xuR6nC*Q}nCfG>TI6T}lzc^ROh>NYF!X?5#N=d+Hd$Qlk)yChNH8uvZ z3vFGiB_JdCWvTUvY5_B&x{7Q2`F|T+JN)E0n*^iOL`JSYMkTJy+{E-${j7r2bS(j; zwGEv&Hp_AMCU{PbT`^P7ph3Wj)7LLCvoJ3wFv;PHtVgSS5ChOPp1xMKK~5I-x^X^w zDJHT0dU@I2@kOPc_W3D7R$Q#fuEF7@0!$K@H{P3Y+fYfMiEF2sglXv8K8H)rvW9iK zS^|t7eDl=r+}T$0*;C2PJot*i=4l`2ut+6x#VT<^TvU*k?(j>{CQ-ui{-=oiM_yB*}39F&m$v+?y1k7T`~gzHJb!N literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_10.txtproto b/test-cases/chat_item_standard_message_standard_attachments_10.txtproto new file mode 100644 index 00000000..627de3d4 --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_10.txtproto @@ -0,0 +1,199 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577848 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1695248715439 + viewed = Viewed {} + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + digest = <1c11f4a53bc87b1036327e78d6bf0ffb> + key = <4cb7634ea9ab33f68328b1520712b5ad> + size = 1761157590 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "zeAEZObFnzTZMn" + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "cESWu" + cdnNumber = 2 + digest = <01480e9e27dcdcb674f34922363753d4> + key = <820ab936183555ed8e40d2431d317e2d> + size = 1134316339 + uploadTimestamp = 1708089907411 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/jpeg" + fileName = "MNaiqnlQb" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + cdnNumber = 3 + digest = + key = + size = 503516885 + uploadTimestamp = 1881696134321 + } + caption = "ksKenthyvzSFN" + contentType = "image/png" + height = 2301 + width = 2298 + } + wasDownloaded = true + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1744320599097 + sortOrder = 1877653162635 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_11.binproto b/test-cases/chat_item_standard_message_standard_attachments_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..353cd5d5830a726f012b7bef9ec58533b15c20cc GIT binary patch literal 1169 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@7kps`Qx^$Y7M%d2!C$&jwy>Tr3LGjkKuQ}xp`)3gMX);4tB*eu80o8UP$cEwCRg9ZUB zzN%D5*C_uax4f#5DBnDXDH0wtC4$%sB0Nf>GE$;seA0X}%);^$E&V*h?aTe#bo29l zbgjc3BP{YOr5L0VxMGyJAXa1*q^5KE0V6#r$-p=*HO0cj!Ys|i(9$f)EY-}^EZM-) z+}zO2EKPtxNCVws@_!+c)h{?ZA;r1$?Uw;9L{pFe2wX!{vQFx zr_>fku8oW^ZxrOE6X%U9vL3DSK@9la&lSm~U}R*JVq#%nk(82{n39}knVOhrVrgKJ zmTYcpoNQ!bBETdi;1#uC_qXa*6Vh%4pZdn*cT!0}N!Np8@2WdLUoDx?f86+xi^kIh z6Mixpv4>Yi2IOTYS};g0XXIK0cQ!EetvG%C5;F_)asrbaehGT~6%69dF7{5%E6J!V zs|t4W1G?1RT`NsTH&ZW1H{ae}rOrO8#Js@6&(OBS)tD=sOTj!P$;`|&)zr*9EhRb0 zFfrN8!Zgt$F*PMA#mF)_$wYuzN + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577849 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + skipped = Skipped {} + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "pXHtZhd" + contentType = "image/gif" + fileName = "zeAEZObFnzTZMn" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 3092 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = + key = <18e707cf7cb4446159fb651a953525dd> + mediaName = "ebb03fed8486f4196b6e656c0977166f" + size = 413137175 + } + contentType = "image/jpeg" + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <222d4808bdaadcf9eaa4908fc733c244> + key = <4a5aa0bbf67baa9066da53caf60c4ec9> + mediaName = "222d4808bdaadcf9eaa4908fc733c244" + size = 522457189 + transitCdnKey = "WyYPnka" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "zeAEZObFnzTZMn" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <7db665e567fdcb1ac685a8aedbd29cb4> + key = <2ed70996974af5a7a459650a2590efd1> + mediaName = "7db665e567fdcb1ac685a8aedbd29cb4" + size = 1261260923 + transitCdnKey = "IBHCZ" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "ksKenthyvzSFN" + contentType = "image/gif" + fileName = "MNaiqnlQb" + height = 2301 + width = 2298 + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = <595e2aa725b1e780a6681e10130f4bc7> + key = <0f4d11d0201e77f9ba1caec888cf6bfa> + mediaName = "595e2aa725b1e780a6681e10130f4bc7" + size = 413137175 + } + caption = "pXHtZhd" + contentType = "audio/mp3" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3092 + } + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1744320599093 + sortOrder = 1 + }, + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1744320599094 + sortOrder = 2 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_12.binproto b/test-cases/chat_item_standard_message_standard_attachments_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f32fcc28f52b77158dd0ea7451fd58df31cdb6ae GIT binary patch literal 557 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4CcsMOC0WH3tXx;W?UX9F)@E^ZDMfg6io zZ(V2V#Sm32RmhdA#95Y^lA5odTVP_vSC#7M8s(qlmRA)L<(n5JiV`i4BSLa+& zs_K*P<69GKq-q= + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577850 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + digest = <1c11f4a53bc87b1036327e78d6bf0ffb> + key = <4cb7634ea9ab33f68328b1520712b5ad> + size = 1761157590 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "zeAEZObFnzTZMn" + } + wasDownloaded = true + } + ] + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_13.binproto b/test-cases/chat_item_standard_message_standard_attachments_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..18ef1dd837aae5092e0ab3f6385ebc85b54a4f79 GIT binary patch literal 810 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6|PR_b8}G8iRxU!3#yvw;^s7cU2k!1}qT zmaaDRV&Y(oddnolAT^PZtB+BMD>FASJyk!eAT?b}Kxu75=Z(#B+`S2&Q)5@m)H7%h zu;TRfOUx|H%Lz#*m+c*2RO)G;pCV+% z#hUCI99}BGByoA;y$QDsl?0l&cA80;hQ94{xa2HrSf{Hc!05p@PyNoFZ6%*QmCVe8 zuNZ8e_Hho2R3cZb5+}q(1$pTXzXU!03I_3J7kj7Xm1I smVTb$_T_$Vy7~D&y4K;25f=HCQVd4?Tr3~vPwWFm!1fg%dL9`80M^C!a{vGU literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_13.txtproto b/test-cases/chat_item_standard_message_standard_attachments_13.txtproto new file mode 100644 index 00000000..bd337e4b --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_13.txtproto @@ -0,0 +1,199 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577851 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "cESWu" + cdnNumber = 2 + digest = <01480e9e27dcdcb674f34922363753d4> + key = <820ab936183555ed8e40d2431d317e2d> + size = 1134316339 + uploadTimestamp = 1708089907411 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/jpeg" + fileName = "MNaiqnlQb" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + cdnNumber = 3 + digest = + key = + size = 503516885 + uploadTimestamp = 1881696134321 + } + caption = "ksKenthyvzSFN" + contentType = "image/png" + height = 2301 + width = 2298 + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "pXHtZhd" + contentType = "image/gif" + fileName = "zeAEZObFnzTZMn" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 3092 + } + } + ] + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1744320599095 + } + ] + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_standard_attachments_14.binproto b/test-cases/chat_item_standard_message_standard_attachments_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..c70554a8fac9b453db3387ed0b78d88c48a7ac88 GIT binary patch literal 1193 zcmZuveM}o=9KN^o^Tct~FuM!lMo9J z6IqdEUK03t+(42j31fVyqW1iXK16Y4u-RRFbN3m3!`=2RPqd}{o-&@kV0c%HFkgcM z&<~DB+fOQVm`nX;!#&eE5E z?e(7JS7{TT^B3rV+bzijI)H&pU<6c0ssk_%z&b$C3D$!$Pzk~y1{y#s0Bu0F7pT-A z1%jZ(B_xy3;=d>%1zLm_m0GzP=%J+|BcLa>>FNX=gAr-`o`WXBYHuUvkBhG~>JnIO zrCP47_}>`N-v3aBbxvGb%yDD)usz^HEAp!&L7r9kYa;P*Hl#!)L5Tb)q@?cq`S>QR!LXm>S zWG7jYC#_`AXt&u+Bq<;eis-JX&NUAdFy-?++G)-B1xK#;Nti zXx{gaIk!Gu3el+^!4oE*7a67|FvUzjK&V}UChpTGW@zHp=aZ{7O z$R{Z+F4haHvm%D-EHSq@y(O29+hR_i>6v(;84kdhjblmD%3DdBzy(KhWR2_jJxKU8yQo=8V%}ZYgG~-O3XTV?w86k<5h6`UM%^NSA`fW(51H?*LKE3~)Rz$A* hw0C;P1c6PC_Wga?vfSUbQ(FAbmiyZ~Cnv|qe*h?zd6EDC literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_standard_attachments_14.txtproto b/test-cases/chat_item_standard_message_standard_attachments_14.txtproto new file mode 100644 index 00000000..2f5bd7a0 --- /dev/null +++ b/test-cases/chat_item_standard_message_standard_attachments_14.txtproto @@ -0,0 +1,239 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577852 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + attachments = [ + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = + key = <18e707cf7cb4446159fb651a953525dd> + mediaName = "ebb03fed8486f4196b6e656c0977166f" + size = 413137175 + } + contentType = "image/jpeg" + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <222d4808bdaadcf9eaa4908fc733c244> + key = <4a5aa0bbf67baa9066da53caf60c4ec9> + mediaName = "222d4808bdaadcf9eaa4908fc733c244" + size = 522457189 + transitCdnKey = "WyYPnka" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/png" + fileName = "zeAEZObFnzTZMn" + height = 3973 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3796 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <7db665e567fdcb1ac685a8aedbd29cb4> + key = <2ed70996974af5a7a459650a2590efd1> + mediaName = "7db665e567fdcb1ac685a8aedbd29cb4" + size = 1261260923 + transitCdnKey = "IBHCZ" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "ksKenthyvzSFN" + contentType = "image/gif" + fileName = "MNaiqnlQb" + height = 2301 + width = 2298 + } + wasDownloaded = true + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + backupLocator = BackupLocator { + digest = <595e2aa725b1e780a6681e10130f4bc7> + key = <0f4d11d0201e77f9ba1caec888cf6bfa> + mediaName = "595e2aa725b1e780a6681e10130f4bc7" + size = 413137175 + } + caption = "pXHtZhd" + contentType = "audio/mp3" + height = 3097 + incrementalMac = <22ad8089d8b31e0b8d6049955da8992e> + incrementalMacChunkSize = 2048 + width = 3092 + } + }, + MessageAttachment { + flag = Flag.NONE + pointer = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "xxDXOZ" + digest = <1c11f4a53bc87b1036327e78d6bf0ffb> + key = <4cb7634ea9ab33f68328b1520712b5ad> + size = 1761157590 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "video/mp4" + fileName = "zeAEZObFnzTZMn" + } + wasDownloaded = true + } + ] + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1744320599096 + sortOrder = 1812737042662 + }, + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1744320599097 + sortOrder = 1877653162635 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_00.binproto b/test-cases/chat_item_standard_message_text_only_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..ad4ead28a7ab61e434493dce4ca95a6a5fd5862c GIT binary patch literal 447 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nPQU*~H>n_fD``N%rh~w^=|A&tn3M~B7 Oa&fi^C + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577838 + incoming = IncomingMessageDetails { + dateReceived = 1702291826269 + dateServerSent = 1794124103201 + read = true + sealedSender = true + } + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_01.binproto b/test-cases/chat_item_standard_message_text_only_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..262f1b05302f24e65ff59790a254c2b4fba59f4c GIT binary patch literal 469 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4}bvIJ2Q>o3lE``N&WkK^8%|A&tn3M~55 ma&fjvl#CEN7i&RErdO1aAQ#Jr`I8!e;j-=EzB!%73XA|lMtyJq literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_text_only_01.txtproto b/test-cases/chat_item_standard_message_text_only_01.txtproto new file mode 100644 index 00000000..11c74c59 --- /dev/null +++ b/test-cases/chat_item_standard_message_text_only_01.txtproto @@ -0,0 +1,138 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577839 + incoming = IncomingMessageDetails { + dateReceived = 1702291826270 + dateServerSent = 1794124103202 + } + standardMessage = StandardMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1754822320310 + sortOrder = 1 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_02.binproto b/test-cases/chat_item_standard_message_text_only_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..03844c92a2bd522ece0b88c2de83b7974c5d0520 GIT binary patch literal 482 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@7LAasyI~5*segdHdPGi;atggGGuV%20@# ti!(Aj%_Stgz|+e}kc;KR{E58+EE3xf?wiwTtiWW%4;JbJYTW@A0syN5eVPCO literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_text_only_02.txtproto b/test-cases/chat_item_standard_message_text_only_02.txtproto new file mode 100644 index 00000000..d85f0eee --- /dev/null +++ b/test-cases/chat_item_standard_message_text_only_02.txtproto @@ -0,0 +1,147 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577840 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + pending = Pending {} + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1754822320311 + sortOrder = 2 + }, + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1754822320312 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_03.binproto b/test-cases/chat_item_standard_message_text_only_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..5db54f8f45a5274a80af1bab595ba4af75e4557f GIT binary patch literal 444 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nMQUFqn5*shhdHdPGi=T^^gGJ!R;@4Z( OnJO`HFh(&6F#rHHQ*e#| literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_text_only_03.txtproto b/test-cases/chat_item_standard_message_text_only_03.txtproto new file mode 100644 index 00000000..02d7acba --- /dev/null +++ b/test-cases/chat_item_standard_message_text_only_03.txtproto @@ -0,0 +1,137 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577841 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent { + sealedSender = true + } + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_04.binproto b/test-cases/chat_item_standard_message_text_only_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..bdbfc034c786d80a902814566d1a3b90baa4f2bb GIT binary patch literal 473 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4}cvISC%5}Pj0dHdPGi + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577842 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent {} + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1754822320313 + sortOrder = 1762578225552 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_05.binproto b/test-cases/chat_item_standard_message_text_only_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e028e1f0bd2ec2cbd8f50280a8017d34feae56b3 GIT binary patch literal 491 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~2b@&{6k5}Pm1dHdPGi-U`egGGypgE7iN zh?|QuGCa*CB)!1X%Seoi<-`1my+D<_4(^-NX{>PP#JaZWCPsoF@ktFp@of-sMgTQ0 BfsX(H literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_text_only_05.txtproto b/test-cases/chat_item_standard_message_text_only_05.txtproto new file mode 100644 index 00000000..88775fce --- /dev/null +++ b/test-cases/chat_item_standard_message_text_only_05.txtproto @@ -0,0 +1,150 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577843 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1754822320314 + sortOrder = 1792893756508 + }, + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1754822320310 + sortOrder = 1 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_06.binproto b/test-cases/chat_item_standard_message_text_only_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..85d50c360d5bef088552160164ad8a70169d6988 GIT binary patch literal 442 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nKk^@qV5?e0LdHdPGi + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577844 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered {} + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_07.binproto b/test-cases/chat_item_standard_message_text_only_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..7cac400775c3787f42117306bea27dc3d0ee85a6 GIT binary patch literal 470 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4}WvI0_!5?e3MdHdPGi=T^^gGFHd+*3W02H2iS^xk5 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_text_only_07.txtproto b/test-cases/chat_item_standard_message_text_only_07.txtproto new file mode 100644 index 00000000..9c2d2057 --- /dev/null +++ b/test-cases/chat_item_standard_message_text_only_07.txtproto @@ -0,0 +1,145 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577845 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1754822320311 + sortOrder = 2 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_08.binproto b/test-cases/chat_item_standard_message_text_only_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f7338e437560217d62c35de6d5834e118f925928 GIT binary patch literal 487 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@7LF@&;0j65B4$dHdPGi;atggT;s;%1nrx zi!(Aj%_Stgz|+f!pNr+g{E2-)bvq93o6~7*BnA?g)F8kju@fwyFk$o4zGcP$LZN|A literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_text_only_08.txtproto b/test-cases/chat_item_standard_message_text_only_08.txtproto new file mode 100644 index 00000000..a9594128 --- /dev/null +++ b/test-cases/chat_item_standard_message_text_only_08.txtproto @@ -0,0 +1,147 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577846 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read {} + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1754822320312 + }, + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1754822320313 + sortOrder = 1762578225552 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_09.binproto b/test-cases/chat_item_standard_message_text_only_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..d108e5afca17c49857c90381b7333bc4d7e24670 GIT binary patch literal 444 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nMQUFqn65B7%dHdPGi=T^^gGJ!R;@4Z( OnOZS%Fh(&6F#rHIwQ#He literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_text_only_09.txtproto b/test-cases/chat_item_standard_message_text_only_09.txtproto new file mode 100644 index 00000000..fc29960c --- /dev/null +++ b/test-cases/chat_item_standard_message_text_only_09.txtproto @@ -0,0 +1,137 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577847 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1833527071192 + viewed = Viewed { + sealedSender = true + } + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_10.binproto b/test-cases/chat_item_standard_message_text_only_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..93f209ead1d31200df62c13160e0b9470182c13d GIT binary patch literal 473 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4}cvISC%5<4!=dHdPGi + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577848 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1695248715439 + viewed = Viewed {} + } + ] + } + standardMessage = StandardMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1754822320314 + sortOrder = 1792893756508 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_11.binproto b/test-cases/chat_item_standard_message_text_only_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..2e54024b220828d459fd9b5bf8d6d66a13c4dd8c GIT binary patch literal 484 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@7LC@&Hnd5<4%>dHdPGi;atggT;v<%2 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577849 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + skipped = Skipped {} + } + ] + } + standardMessage = StandardMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1754822320310 + sortOrder = 1 + }, + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1754822320311 + sortOrder = 2 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_12.binproto b/test-cases/chat_item_standard_message_text_only_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..2595377ebcd5eb9ab635b2cf1c99e7c1bf09ed1d GIT binary patch literal 442 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nKk^@qV61y(WdHdPGi + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577850 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_13.binproto b/test-cases/chat_item_standard_message_text_only_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..831eace9e675fe86845d63cb5edf1de2219aef65 GIT binary patch literal 468 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4}XvH((y61y+XdHdPGi=T^^gGFHd+*3 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577851 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1754822320312 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_text_only_14.binproto b/test-cases/chat_item_standard_message_text_only_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..390a8d8554ab5675d05bac9de96e1c402ff7cab5 GIT binary patch literal 496 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~2a3IS4#5_>MrdHdPGi-U`egT;%9gDJ{Z zh?|QuGCa*CB)!1X%Seoi<-`0*4FW6@I}h%g(`l?QVe`|zWyTQkiM>D*c0t7NoLJX3 G-2?#Go`qom literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_text_only_14.txtproto b/test-cases/chat_item_standard_message_text_only_14.txtproto new file mode 100644 index 00000000..b88992df --- /dev/null +++ b/test-cases/chat_item_standard_message_text_only_14.txtproto @@ -0,0 +1,150 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577852 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1754822320313 + sortOrder = 1762578225552 + }, + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1754822320314 + sortOrder = 1792893756508 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_edits_00.binproto b/test-cases/chat_item_standard_message_with_edits_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..df5280c93f26eab37927efd0230e9289d2312016 GIT binary patch literal 484 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@7LC@&Hj1Hx|F%y3W){8O(V%=M|9SB*gIq a%n*1Bra<8l#U#W46h8-6EpQ!7!NdWp5`swp literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_edits_00.txtproto b/test-cases/chat_item_standard_message_with_edits_00.txtproto new file mode 100644 index 00000000..0c9c6c52 --- /dev/null +++ b/test-cases/chat_item_standard_message_with_edits_00.txtproto @@ -0,0 +1,150 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + incoming = IncomingMessageDetails { + dateReceived = 1833527071182 + dateServerSent = 1833527071191 + read = true + sealedSender = true + } + revisions = [ + ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527053934 + incoming = IncomingMessageDetails { + dateReceived = 1833527053924 + dateServerSent = 1833527053933 + read = true + sealedSender = true + } + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + } + ] + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_edits_01.binproto b/test-cases/chat_item_standard_message_with_edits_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..79b176468e57ac7f791594f6868c57a7ea999413 GIT binary patch literal 576 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=%sI-U?#E@7&_tetWhDOR@&bv9UwyraE z65@CQW(d3mQ=kxuViIC7QU@!72s-g`JccNG1E!+5ggCg^(!!JS(<6;^zzQJ}K+_&U p6uw57#x2Cj#a + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1695248715439 + incoming = IncomingMessageDetails { + dateReceived = 1695248715429 + dateServerSent = 1695248715438 + } + revisions = [ + ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527053934 + incoming = IncomingMessageDetails { + dateReceived = 1833527053924 + dateServerSent = 1833527053933 + read = true + sealedSender = true + } + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + }, + ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527053933 + incoming = IncomingMessageDetails { + dateReceived = 1833527053923 + dateServerSent = 1833527053932 + } + standardMessage = StandardMessage { + text = Text { + body = "fWbogY" + } + } + }, + ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527053932 + incoming = IncomingMessageDetails { + dateReceived = 1833527053922 + dateServerSent = 1833527053931 + read = true + sealedSender = true + } + standardMessage = StandardMessage { + text = Text { + body = "zQSvJcb" + } + } + } + ] + standardMessage = StandardMessage { + text = Text { + body = "WfDTg" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_edits_02.binproto b/test-cases/chat_item_standard_message_with_edits_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..c0319c4a7be186b3ce0e78f9290dd36c6309ebc7 GIT binary patch literal 498 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3l?3IkCRHx|F%y3W){8O(V%=M|9SB*gIq r%n*1Bra<8l#U#W46h8-6EpQ!7fyD)c__%mHy$UOXvwZ^HU4u#h^DBnI literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_edits_02.txtproto b/test-cases/chat_item_standard_message_with_edits_02.txtproto new file mode 100644 index 00000000..874495fa --- /dev/null +++ b/test-cases/chat_item_standard_message_with_edits_02.txtproto @@ -0,0 +1,150 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + incoming = IncomingMessageDetails { + dateReceived = 1833527071182 + dateServerSent = 1833527071191 + read = true + sealedSender = true + } + revisions = [ + ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527053934 + incoming = IncomingMessageDetails { + dateReceived = 1833527053924 + dateServerSent = 1833527053933 + read = true + sealedSender = true + } + standardMessage = StandardMessage { + text = Text { + body = "" + } + } + } + ] + standardMessage = StandardMessage { + text = Text { + body = "IJqySkLQGERt" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_00.binproto b/test-cases/chat_item_standard_message_with_quote_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..689c145825de1ef61026f3286ee136e953ff360e GIT binary patch literal 490 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;1k^oT>j81G2KSyy0v2n2^7N?|{Dj9>N t)?J+Q_OpSL5Xap!{|_HE6j=DD<>G7;Q0PPnaq$6lu}DF6XfO&f0072LdMf|` literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_quote_00.txtproto b/test-cases/chat_item_standard_message_with_quote_00.txtproto new file mode 100644 index 00000000..7e0eddad --- /dev/null +++ b/test-cases/chat_item_standard_message_with_quote_00.txtproto @@ -0,0 +1,158 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + standardMessage = StandardMessage { + text = Text { + body = "asdf" + } + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577838 + incoming = IncomingMessageDetails { + dateReceived = 1702291826269 + dateServerSent = 1794124103201 + read = true + sealedSender = true + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + text = Text { + body = "asdf" + } + type = Type.NORMAL + } + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_01.binproto b/test-cases/chat_item_standard_message_with_quote_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6b9974f33ca5c005013d1cfba74c018ae163f3fb GIT binary patch literal 515 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nPQU*~Hj81G2KPL%u33Bmsu?D1;q!tOW z1tb<_rxrOYIf7NKzc}aZX9Fibj(cbRA3ka*u;@?A#n~oNDqJAVEE|Cq`DVbhT YMuJ={ALdVL0EXhWgZt)m8Y?gY05b)IF8}}l literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_quote_01.txtproto b/test-cases/chat_item_standard_message_with_quote_01.txtproto new file mode 100644 index 00000000..dc67dc7d --- /dev/null +++ b/test-cases/chat_item_standard_message_with_quote_01.txtproto @@ -0,0 +1,166 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + name = Name { + familyName = "Parker" + givenName = "Peter" + } + } + ] + } + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577839 + incoming = IncomingMessageDetails { + dateReceived = 1702291826270 + dateServerSent = 1794124103202 + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + type = Type.NORMAL + } + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1754822320310 + sortOrder = 1 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_02.binproto b/test-cases/chat_item_standard_message_with_quote_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..7f186df70d405f1b11f669e7c47e2d9acf223b7e GIT binary patch literal 573 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~2Z3II_Oj81G2KW8~`* + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + stickerMessage = StickerMessage { + sticker = Sticker { + data_ = FilePointer { + invalidAttachmentLocator = InvalidAttachmentLocator {} + } + emoji = "👍" + packId = <00000000000000000000000000000000> + packKey = <0101010101010101010101010101010101010101010101010101010101010101> + } + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577840 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + pending = Pending {} + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + type = Type.NORMAL + } + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1754822320311 + sortOrder = 2 + }, + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1754822320312 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_03.binproto b/test-cases/chat_item_standard_message_with_quote_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3ea7e3993201b92bfba0114e1317e2b249d55fd1 GIT binary patch literal 487 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;1k^oT>j81G2KSyy0v2n2^7N?{cDH#Bz t7$r7dob&dxffqj)F9(ajjm59Gt}|6);$Vyt;^G5pVUdC=*I*Q4008K}b`$^r literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_quote_03.txtproto b/test-cases/chat_item_standard_message_with_quote_03.txtproto new file mode 100644 index 00000000..e0ce579e --- /dev/null +++ b/test-cases/chat_item_standard_message_with_quote_03.txtproto @@ -0,0 +1,163 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + standardMessage = StandardMessage { + text = Text { + body = "asdf" + } + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577841 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent { + sealedSender = true + } + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + text = Text { + body = "asdf" + } + type = Type.NORMAL + } + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_04.binproto b/test-cases/chat_item_standard_message_with_quote_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..01fcbd1805375ba30248bef4f82abff0155d5dee GIT binary patch literal 519 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nPQU*~Hj81G2KPL%u33Bmsu?D1;q!tOW z1tb<_rxv*@xdK%&N^H6~=j~?$FJ3Ng4i + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + name = Name { + familyName = "Parker" + givenName = "Peter" + } + } + ] + } + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577842 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent {} + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + type = Type.NORMAL + } + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1754822320313 + sortOrder = 1762578225552 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_05.binproto b/test-cases/chat_item_standard_message_with_quote_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..cf69f5c5ce19300938bf48af0f51baaf45231429 GIT binary patch literal 582 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~2Z3II_Oj81G2KW8~`*Pib{*U|r_)&B&WUwx(@l&7LE@7dfa2RA;*0?8PKW9M literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_quote_05.txtproto b/test-cases/chat_item_standard_message_with_quote_05.txtproto new file mode 100644 index 00000000..b52ded6d --- /dev/null +++ b/test-cases/chat_item_standard_message_with_quote_05.txtproto @@ -0,0 +1,178 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + stickerMessage = StickerMessage { + sticker = Sticker { + data_ = FilePointer { + invalidAttachmentLocator = InvalidAttachmentLocator {} + } + emoji = "👍" + packId = <00000000000000000000000000000000> + packKey = <0101010101010101010101010101010101010101010101010101010101010101> + } + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577843 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + type = Type.NORMAL + } + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1754822320314 + sortOrder = 1792893756508 + }, + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1754822320310 + sortOrder = 1 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_06.binproto b/test-cases/chat_item_standard_message_with_quote_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..93930ecc03f24e76c25e95da901bbd0385f59651 GIT binary patch literal 485 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;1k^oT>j81G2KSyy0v2n2^7N?{cDCq&E r7$vq`ob&dxffp|qHwTNrjm59Gt~1qQh!W!B18QKAf-2Tv6k-4X0P%JV literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_quote_06.txtproto b/test-cases/chat_item_standard_message_with_quote_06.txtproto new file mode 100644 index 00000000..76e56648 --- /dev/null +++ b/test-cases/chat_item_standard_message_with_quote_06.txtproto @@ -0,0 +1,161 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + standardMessage = StandardMessage { + text = Text { + body = "asdf" + } + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577844 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered {} + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + text = Text { + body = "asdf" + } + type = Type.NORMAL + } + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_07.binproto b/test-cases/chat_item_standard_message_with_quote_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..11d6708f9aa103f03675054da89c8d7cfdfead8f GIT binary patch literal 516 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nPQU*~Hj81G2KPL%u33Bmsu?D1;q!tOW z1tb<_rxv*=IRRBMN^HG2=j~?$FMcjw4iA!5F2&1=7u;!6?Me#afV( a=@n%p$i?zu{={CO(c2I1o6~8mzytv4cYqlH literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_quote_07.txtproto b/test-cases/chat_item_standard_message_with_quote_07.txtproto new file mode 100644 index 00000000..49806e50 --- /dev/null +++ b/test-cases/chat_item_standard_message_with_quote_07.txtproto @@ -0,0 +1,173 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + name = Name { + familyName = "Parker" + givenName = "Peter" + } + } + ] + } + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577845 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + type = Type.NORMAL + } + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1754822320311 + sortOrder = 2 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_08.binproto b/test-cases/chat_item_standard_message_with_quote_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..c43bf82be4b2f2c56013d4bce259c725d13ec927 GIT binary patch literal 578 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~2Z3II_Oj81G2KW8~`* + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + stickerMessage = StickerMessage { + sticker = Sticker { + data_ = FilePointer { + invalidAttachmentLocator = InvalidAttachmentLocator {} + } + emoji = "👍" + packId = <00000000000000000000000000000000> + packKey = <0101010101010101010101010101010101010101010101010101010101010101> + } + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577846 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read {} + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + type = Type.NORMAL + } + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1754822320312 + }, + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1754822320313 + sortOrder = 1762578225552 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_09.binproto b/test-cases/chat_item_standard_message_with_quote_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..9bc3915f37806a29812b8bbecd85744e9bdd5c7d GIT binary patch literal 487 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;1k^oT>j81G2KSyy0v2n2^7N?{cDH#Bz t7$vq}ob&dxffqj)F9(ajjm59Gt~0e_;$Vyt;^G5pVUdC=*I*Q4008U(b}|3} literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_quote_09.txtproto b/test-cases/chat_item_standard_message_with_quote_09.txtproto new file mode 100644 index 00000000..fea64791 --- /dev/null +++ b/test-cases/chat_item_standard_message_with_quote_09.txtproto @@ -0,0 +1,163 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + standardMessage = StandardMessage { + text = Text { + body = "asdf" + } + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577847 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1833527071192 + viewed = Viewed { + sealedSender = true + } + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + text = Text { + body = "asdf" + } + type = Type.NORMAL + } + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_10.binproto b/test-cases/chat_item_standard_message_with_quote_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..10d332466969671dca254c317c2b875aecd75fc3 GIT binary patch literal 519 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nPQU*~Hj81G2KPL%u33Bmsu?D1;q!tOW z1tb<_rxv*@xdK%&O6<5e=j~?$FJ3Ng4i= literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_quote_10.txtproto b/test-cases/chat_item_standard_message_with_quote_10.txtproto new file mode 100644 index 00000000..6efb859c --- /dev/null +++ b/test-cases/chat_item_standard_message_with_quote_10.txtproto @@ -0,0 +1,171 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + name = Name { + familyName = "Parker" + givenName = "Peter" + } + } + ] + } + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577848 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1695248715439 + viewed = Viewed {} + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + type = Type.NORMAL + } + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1754822320314 + sortOrder = 1792893756508 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_11.binproto b/test-cases/chat_item_standard_message_with_quote_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..40071a0b18968b2b99c249258ff33b5a005e0582 GIT binary patch literal 575 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~2Z3II_Oj81G2KW8~`*^`+}jTBo6~8mzz7kV*b8*kc8CxY06mO^KmY&$ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_quote_11.txtproto b/test-cases/chat_item_standard_message_with_quote_11.txtproto new file mode 100644 index 00000000..ce98fb99 --- /dev/null +++ b/test-cases/chat_item_standard_message_with_quote_11.txtproto @@ -0,0 +1,176 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + stickerMessage = StickerMessage { + sticker = Sticker { + data_ = FilePointer { + invalidAttachmentLocator = InvalidAttachmentLocator {} + } + emoji = "👍" + packId = <00000000000000000000000000000000> + packKey = <0101010101010101010101010101010101010101010101010101010101010101> + } + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577849 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + skipped = Skipped {} + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + type = Type.NORMAL + } + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1754822320310 + sortOrder = 1 + }, + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1754822320311 + sortOrder = 2 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_12.binproto b/test-cases/chat_item_standard_message_with_quote_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..5ad4f1d48c87d72d9975c85154051646e2b4a1d9 GIT binary patch literal 485 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;1k^oT>j81G2KSyy0v2n2^7N?{cDCq&E r7$tUHob&dxffp|qHwTNrjm59Gt~2#wh!W!B18QKAf-2Tv6k-4X1gCZ~ literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_standard_message_with_quote_12.txtproto b/test-cases/chat_item_standard_message_with_quote_12.txtproto new file mode 100644 index 00000000..5cd129e4 --- /dev/null +++ b/test-cases/chat_item_standard_message_with_quote_12.txtproto @@ -0,0 +1,163 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + standardMessage = StandardMessage { + text = Text { + body = "asdf" + } + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577850 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + text = Text { + body = "asdf" + } + type = Type.NORMAL + } + text = Text { + body = "" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_13.binproto b/test-cases/chat_item_standard_message_with_quote_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..8e42b96ba0403e658a374b0085c18e10c2e3dc54 GIT binary patch literal 514 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1nPQU*~Hj81G2KPL%u33Bmsu?D1;q!tOW z1tb<_rxrOWIRI5LO6 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + contactMessage = ContactMessage { + contact = [ + ContactAttachment { + name = Name { + familyName = "Parker" + givenName = "Peter" + } + } + ] + } + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577851 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + type = Type.NORMAL + } + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1754822320312 + } + ] + text = Text { + body = "pdiJZ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_standard_message_with_quote_14.binproto b/test-cases/chat_item_standard_message_with_quote_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..28113fcc2a2b9daa70e059f77c81a3bc20ad2ccd GIT binary patch literal 587 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~2Z3II_Oj81G2KW8~`* + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1 + incoming = IncomingMessageDetails { + dateReceived = 1 + dateServerSent = 1 + read = true + } + stickerMessage = StickerMessage { + sticker = Sticker { + data_ = FilePointer { + invalidAttachmentLocator = InvalidAttachmentLocator {} + } + emoji = "👍" + packId = <00000000000000000000000000000000> + packKey = <0101010101010101010101010101010101010101010101010101010101010101> + } + } + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577852 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 4 + } + ] + } + standardMessage = StandardMessage { + quote = Quote { + authorId = 4 + targetSentTimestamp = 1 + type = Type.NORMAL + } + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1754822320313 + sortOrder = 1762578225552 + }, + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1754822320314 + sortOrder = 1792893756508 + } + ] + text = Text { + body = "YWfDTgpIJ" + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_00.binproto b/test-cases/chat_item_sticker_message_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..97978cbae74393277c3564b558126f9c1967ac5f GIT binary patch literal 604 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#VsI-p}#E@8ban9S%22Mg8chCGkeAG~2 z;h&a^vrRyOkTr*qYbGO?z>6@JCy&$l%U^$et|&4;a;}g97k}d9E&qS3MpRCrIpRI~vz>% literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_sticker_message_00.txtproto b/test-cases/chat_item_sticker_message_00.txtproto new file mode 100644 index 00000000..3e7d68ba --- /dev/null +++ b/test-cases/chat_item_sticker_message_00.txtproto @@ -0,0 +1,144 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577838 + incoming = IncomingMessageDetails { + dateReceived = 1702291826269 + dateServerSent = 1794124103201 + read = true + sealedSender = true + } + stickerMessage = StickerMessage { + sticker = Sticker { + data_ = FilePointer { + backupLocator = BackupLocator { + digest = <342ae035ddbe7fe465fdb345d9345fdc> + key = + mediaName = "342ae035ddbe7fe465fdb345d9345fdc" + size = 1322441015 + } + contentType = "image/png" + } + emoji = "💀" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 8 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_01.binproto b/test-cases/chat_item_sticker_message_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..36c6df1926694a367d87963bce492c48e81a1f85 GIT binary patch literal 697 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4Cfq%@le#E@8jan9S%22Ok&_s;x3eAG~2 z(Vv!!vrV%8GIBj<Bg%Bt!F1B#FSV*%%9k+wSrNJD>FASJyk!kATM1@VDI}Yvt72FxH!lC zbVG%U`h0^10V~!__d?$ahf~rX>Ol-qGCpZO8D?SmiI#qz;r8WzZo2vTKDyT7ju965 zm0Xcr3WgR*1}SOArYS}#DTx+Fi6&`jsfor$MrkQViHYV$Ndin#0?7`VSf$pwB77RjyTtFvJY5>Ol Nxqo-R95qm21OQoo*S-J% literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_sticker_message_01.txtproto b/test-cases/chat_item_sticker_message_01.txtproto new file mode 100644 index 00000000..162e47be --- /dev/null +++ b/test-cases/chat_item_sticker_message_01.txtproto @@ -0,0 +1,159 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1680366577839 + incoming = IncomingMessageDetails { + dateReceived = 1702291826270 + dateServerSent = 1794124103202 + } + stickerMessage = StickerMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1668034297678 + sortOrder = 1 + } + ] + sticker = Sticker { + data_ = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <18b0df35d2dda82a4ffea322fd2aa72b> + key = + mediaName = "18b0df35d2dda82a4ffea322fd2aa72b" + size = 1343527527 + transitCdnKey = "SkLQGER" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/apng" + fileName = "iGqMx" + height = 39 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 3530 + } + emoji = "👍" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 22 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_02.binproto b/test-cases/chat_item_sticker_message_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..026398b15b9a8acc2415b61587d680fa950e5285 GIT binary patch literal 710 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=)q_lzw$Y7M%aBTr3 zm_YF)@FI-m$>VhX^4DLVD~imIoGYZj#h*BN%m3f15tUQzRI7HnyKl{UT5ql=J^j;- zR|#6rPDn^Av3!_6u}^CaqY_tUZen_>etBwAffZjtO0svROI1~>qid9ZlEZ5;k9B-O z9PYk;iJ66YIZ-k`?(SM?I=Y#9IlB4w?kaWmQ6=UD9)53VSNU3KT@t0fcql?0U5djC51 zkR$SU!R`4%T^l4dj&J?&l*NdzJUFn_)j2S{w6xUK&DnxUNRSKU>|OyDiSz&NemQEO Qz$C;E7U}~A&IPa#0L_)w@c;k- literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_sticker_message_02.txtproto b/test-cases/chat_item_sticker_message_02.txtproto new file mode 100644 index 00000000..0737e72a --- /dev/null +++ b/test-cases/chat_item_sticker_message_02.txtproto @@ -0,0 +1,167 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577840 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + pending = Pending {} + recipientId = 4 + } + ] + } + stickerMessage = StickerMessage { + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1668034297679 + sortOrder = 2 + }, + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1668034297680 + } + ] + sticker = Sticker { + data_ = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <22ad4bfac6e10859fb70db9f128ab019> + key = + mediaName = "22ad4bfac6e10859fb70db9f128ab019" + size = 1287396039 + transitCdnKey = "wSQuECQWuuuEFC" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "GMNaiqnl" + contentType = "image/webp" + fileName = "pdcKiDzzeAEZOb" + height = 1838 + width = 2923 + } + emoji = "👎" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 27 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_03.binproto b/test-cases/chat_item_sticker_message_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..e65bdbc0763924fb5a2c6da23d8e7b6a46465966 GIT binary patch literal 668 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@2a$Qu@aTWH3r>yg29WX9F*OE?y26fg6io zZ(V1q#Kggvb)S*z4kMSqi!hcakJI_fUw?hBC^A2Cu8;y3f8yjV|9`7SR8F;1t=j4C zzBTJz7@$W$)X m3GXlVsLZ>qB#{31wA8WI73*$anzKc3hHt9I_D!e1u>b%OBFqv1 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_sticker_message_03.txtproto b/test-cases/chat_item_sticker_message_03.txtproto new file mode 100644 index 00000000..671fe985 --- /dev/null +++ b/test-cases/chat_item_sticker_message_03.txtproto @@ -0,0 +1,155 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577841 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent { + sealedSender = true + } + timestamp = 1833527071192 + } + ] + } + stickerMessage = StickerMessage { + sticker = Sticker { + data_ = FilePointer { + backupLocator = BackupLocator { + digest = <67fdcb1ac685a8aedbd29cb42e984d65> + key = <974af5a7a459650a2590efd18c249edb> + mediaName = "67fdcb1ac685a8aedbd29cb42e984d65" + size = 1322441015 + } + blurHash = "LdIOX?NE9Y4T~pRPRjE1X9f5jrt6" + caption = "bYTMdKV" + contentType = "image/png" + height = 3586 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 3822 + } + emoji = "💀" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 8 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_04.binproto b/test-cases/chat_item_sticker_message_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..5f5de450f64381d3beed2d02a63e5b31730e7bb5 GIT binary patch literal 637 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@316sC1tZ$Y7M%baBqx&jwz+T-+Qi0_*3V zTDsa$i6QF{BiC|9E`b+eEKeS%^OwK=`dm?De&k#s1up)?$y@&aR*k5fYNuMY)7^b* z*3)`(J?ZJ6ZoEp+dUirWOo`>g{E59 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577842 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + sent = Sent {} + timestamp = 1695248715439 + } + ] + } + stickerMessage = StickerMessage { + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1668034297681 + sortOrder = 1784708167318 + } + ] + sticker = Sticker { + data_ = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "WWFqaczwFd" + digest = <46e8dc0a531c93c2fbd8a21f072534d5> + key = <88cf6bfa88e3f24a21a78511518391fb> + size = 1850075618 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "image/apng" + fileName = "iGqMx" + } + emoji = "👍" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 22 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_05.binproto b/test-cases/chat_item_sticker_message_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b38db66fd4b5dd25e2168732a72b56b5a5d2790a GIT binary patch literal 702 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=(q_ltu$Y7M%d~wd(&jwx`Tx=XHT1*^_ zSshGVw-~tuUWBncd7RE){`%{4MUnZDbA=SR_!B2@`TturqH?O8YSm76_pMn^>&^9~ zr+>QfDnaYn2?=Q>mJjnM_G!&#RN~6aO-xVKFHcP>&=T1D{>p5ZEhjF{aX;Nq;i5j@ zph3WjuOKDaJJY4AD%H_7%0J2Bl(dI>5JQxVkEgFyZIF|Ny>6V3UW!Sqzg}LpcYIN) zr+t2kkTVybhmU`Lwr^BGZdQ3=h?fA9#P`?#r|mRQ68M_d + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577843 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered { + sealedSender = true + } + recipientId = 4 + } + ] + } + stickerMessage = StickerMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1668034297682 + sortOrder = 1899836917778 + }, + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1668034297678 + sortOrder = 1 + } + ] + sticker = Sticker { + data_ = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "HLOokMZPmjwqTJ" + cdnNumber = 2 + digest = + key = + size = 464606141 + uploadTimestamp = 1664616494583 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/webp" + fileName = "pdcKiDzzeAEZOb" + height = 39 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 3530 + } + emoji = "👎" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 27 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_06.binproto b/test-cases/chat_item_sticker_message_06.binproto new file mode 100644 index 0000000000000000000000000000000000000000..64fed4a16e38493a1627c27c3a5e5a7d367ca9b6 GIT binary patch literal 599 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6ZGsI-$2$Y7M%a&gYv&jwz+T-+Qi0yh@F z-n!0Iiy>|~v&)E+!MIKl4+v-^RTj8dbfS!8c?PK%p T!_Lo;zvgu&z` + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577844 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + delivered = Delivered {} + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + stickerMessage = StickerMessage { + sticker = Sticker { + data_ = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "WWFqaczwFd" + cdnNumber = 3 + digest = <2e2771dbc69f3f56cf981fd64acc5040> + key = <1a96e707c00259c7264eb5417dfb20d9> + size = 228533420 + uploadTimestamp = 1866570650701 + } + caption = "GMNaiqnl" + contentType = "image/png" + height = 1838 + width = 2923 + } + emoji = "💀" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 8 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_07.binproto b/test-cases/chat_item_sticker_message_07.binproto new file mode 100644 index 0000000000000000000000000000000000000000..173fd0ab0cd8d2da0fb0bb3d1802fa374df8c9f0 GIT binary patch literal 616 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#YsC0@E$Y7M%dU4L%&jw!nT)Z4C0_*3V zTDscMh>3$SYc(U+R7Ng=7hx<<9;fq{zyA7MQDlDPTp7Q=AO3-?CLPAW5<-`1my;|W)T$#Cv>8bjO1$pUO0(;+IneDRW#Kk%8 zryD9<)aM&C2w1UZx)=IZIJ}efXp#wHPl^ojP4NzklJQCN$uJAcPqg&&47V@$bJNYw g_tCWucZ{&euasgC6669~AiyGV{@>j%M-3F10Qi5k+5i9m literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_sticker_message_07.txtproto b/test-cases/chat_item_sticker_message_07.txtproto new file mode 100644 index 00000000..303f92fb --- /dev/null +++ b/test-cases/chat_item_sticker_message_07.txtproto @@ -0,0 +1,159 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577845 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read { + sealedSender = true + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + stickerMessage = StickerMessage { + reactions = [ + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1668034297679 + sortOrder = 2 + } + ] + sticker = Sticker { + data_ = FilePointer { + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "bYTMdKV" + contentType = "image/apng" + fileName = "iGqMx" + height = 3586 + incrementalMac = + incrementalMacChunkSize = 2048 + invalidAttachmentLocator = InvalidAttachmentLocator {} + width = 3822 + } + emoji = "👍" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 22 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_08.binproto b/test-cases/chat_item_sticker_message_08.binproto new file mode 100644 index 0000000000000000000000000000000000000000..eec42c66ea07c2a2ce3e11795477b969fb4a1613 GIT binary patch literal 633 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@5NTr3q$@l zbmLWm*0U25(n>5J=1=U?idN#x%uP&B)i20P=knuHFg7ttOf@hzO-V^gHBU=5F*8j| zNisGuO|b+LX(`D93{nCc*exEazArAQ;gSkj-W8msBw(WT!1V6E`X{M>H@n_6iNB+< rebec0EJFNTU`v4RzVPqvm!k$kVjzJ@4FW6@7r_Dw)80-!{=*mmGNQlv literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_sticker_message_08.txtproto b/test-cases/chat_item_sticker_message_08.txtproto new file mode 100644 index 00000000..ca777fcd --- /dev/null +++ b/test-cases/chat_item_sticker_message_08.txtproto @@ -0,0 +1,159 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577846 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + read = Read {} + recipientId = 4 + } + ] + } + stickerMessage = StickerMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1668034297680 + }, + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1668034297681 + sortOrder = 1784708167318 + } + ] + sticker = Sticker { + data_ = FilePointer { + backupLocator = BackupLocator { + digest = <342ae035ddbe7fe465fdb345d9345fdc> + key = + mediaName = "342ae035ddbe7fe465fdb345d9345fdc" + size = 1322441015 + } + contentType = "image/png" + } + emoji = "👎" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 27 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_09.binproto b/test-cases/chat_item_sticker_message_09.binproto new file mode 100644 index 0000000000000000000000000000000000000000..4653bc5e9c85014dda2489d7588a58caeea731f0 GIT binary patch literal 679 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@6|JQtD&^G8iScU!3#yvw;^s7cU2kz>USP zx2`j_V&Y)Tdd0}~oRLf5MHtJI$Laj#ufIN56qz46S4e@2KXLMw|G!luDyQ11R_%0m z-v2LJ#7 literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_sticker_message_09.txtproto b/test-cases/chat_item_sticker_message_09.txtproto new file mode 100644 index 00000000..69c23b92 --- /dev/null +++ b/test-cases/chat_item_sticker_message_09.txtproto @@ -0,0 +1,158 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577847 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1833527071192 + viewed = Viewed { + sealedSender = true + } + } + ] + } + stickerMessage = StickerMessage { + sticker = Sticker { + data_ = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 2 + digest = <18b0df35d2dda82a4ffea322fd2aa72b> + key = + mediaName = "18b0df35d2dda82a4ffea322fd2aa72b" + size = 1343527527 + transitCdnKey = "SkLQGER" + } + blurHash = "LfLh6Voa9NIW?wNF-ooL-;WAX8oy" + caption = "" + contentType = "image/apng" + fileName = "iGqMx" + height = 39 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 3530 + } + emoji = "💀" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 8 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_10.binproto b/test-cases/chat_item_sticker_message_10.binproto new file mode 100644 index 0000000000000000000000000000000000000000..ce11a5ba13115b9dca7ae3dc4f2a7fbf50e770e8 GIT binary patch literal 705 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@1=zq_mg`$Y7M%adFPu&jwz+T-+Qi0_*3V zTDscMiXp3w2^3udFTz-!JWl5?fBp5jqR9Nnxk3tD{E3sd{Qs>QQ90F4wQ8rk`_`gY zIlLD0SjQK{;qL2~m|2*Y6D8y0?yi-lqnoLhqnmHWSM4YWRaL;U}!18EG4k~ZBVC@t_R27Rd;^AS~8(u zNkD0>_pf6QIU;`-+@3GgwLwzj_|^|kS&aC~g9A%lodd&5OG{ndoGqAy#JIrD1_sEb Re|NteHBgu|;q{KC<^bYX*1P}! literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_sticker_message_10.txtproto b/test-cases/chat_item_sticker_message_10.txtproto new file mode 100644 index 00000000..9cd5a90e --- /dev/null +++ b/test-cases/chat_item_sticker_message_10.txtproto @@ -0,0 +1,163 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577848 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + timestamp = 1695248715439 + viewed = Viewed {} + } + ] + } + stickerMessage = StickerMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1668034297682 + sortOrder = 1899836917778 + } + ] + sticker = Sticker { + data_ = FilePointer { + backupLocator = BackupLocator { + cdnNumber = 3 + digest = <22ad4bfac6e10859fb70db9f128ab019> + key = + mediaName = "22ad4bfac6e10859fb70db9f128ab019" + size = 1287396039 + transitCdnKey = "wSQuECQWuuuEFC" + transitCdnNumber = 2 + } + blurHash = "LGG*f,-i.l-o?G$~?Zt7pHN1=tE3" + caption = "GMNaiqnl" + contentType = "image/webp" + fileName = "pdcKiDzzeAEZOb" + height = 1838 + width = 2923 + } + emoji = "👍" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 22 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_11.binproto b/test-cases/chat_item_sticker_message_11.binproto new file mode 100644 index 0000000000000000000000000000000000000000..fc1a57bf3d71c015f4a5ab58a56cbc3ac7837b00 GIT binary patch literal 697 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4Cfq%@le$Y7M%d2!C$&jwy>Tr3u{?R4&R_oe>vKhs`H^#l6u9^kCvW-xTQ#C`s-0@pPIvdMSx@WD^`xhN zy74MO>)8njX(g5q^C$Lc&1F>L%*;(pPt`BTOV<+E`~J#omn|nQ&T&88P~oCJ-=IOj z;hn5UlS~kMQe=p4ig#F)j8BTEe}uiCt7W7~NL@itKv0&eVT5IxX;x8*8J8cIf|+?* zN^+86VzQZqX`)49YD!Xyk!5m{iBYPhg-ME;sQ`nNz;v&#%a=r^a;Z*uf3Zhp-fbm; z^uMR2jcl*+uEqXJ2Q#H14I{l4BNRSKY&PfeGub=yO_sdZO1xAR_#9jdwiSrO4 FCIHYe*8Tth literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_sticker_message_11.txtproto b/test-cases/chat_item_sticker_message_11.txtproto new file mode 100644 index 00000000..48a7b698 --- /dev/null +++ b/test-cases/chat_item_sticker_message_11.txtproto @@ -0,0 +1,166 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577849 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + recipientId = 4 + skipped = Skipped {} + } + ] + } + stickerMessage = StickerMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "💀" + sentTimestamp = 1668034297678 + sortOrder = 1 + }, + Reaction { + authorId = 4 + emoji = "👍" + sentTimestamp = 1668034297679 + sortOrder = 2 + } + ] + sticker = Sticker { + data_ = FilePointer { + backupLocator = BackupLocator { + digest = <67fdcb1ac685a8aedbd29cb42e984d65> + key = <974af5a7a459650a2590efd18c249edb> + mediaName = "67fdcb1ac685a8aedbd29cb42e984d65" + size = 1322441015 + } + blurHash = "LdIOX?NE9Y4T~pRPRjE1X9f5jrt6" + caption = "bYTMdKV" + contentType = "image/png" + height = 3586 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 3822 + } + emoji = "👎" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 27 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_12.binproto b/test-cases/chat_item_sticker_message_12.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b6204903f6d0cfd7229c49a35ae925c2d2884107 GIT binary patch literal 613 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@0#SsC1kW$Y7M%b#czy&jwz+T-+Qi0yh@F z-n!1ziy> + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577850 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.UNKNOWN + } + recipientId = 4 + timestamp = 1833527071192 + } + ] + } + stickerMessage = StickerMessage { + sticker = Sticker { + data_ = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "WWFqaczwFd" + digest = <46e8dc0a531c93c2fbd8a21f072534d5> + key = <88cf6bfa88e3f24a21a78511518391fb> + size = 1850075618 + } + blurHash = "LJR,66e.~Cxu%LoLM|S2%3WWIosm" + contentType = "image/apng" + fileName = "iGqMx" + } + emoji = "💀" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 8 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_13.binproto b/test-cases/chat_item_sticker_message_13.binproto new file mode 100644 index 0000000000000000000000000000000000000000..bb73c0847847dcd9a6d2ee8cb424c965af289818 GIT binary patch literal 683 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@4CYq}0mPUkOw{q?z`$o$B;LJC~`iIcbd|E(HPIn_?JYNxyV z)~u)X=6cf8Kiznhp!Mv8gqRY`hxrqGwPrIaab@Nvrl;zcrzRC>3G97;Wwy(f6Bp;W zpKhpdQJ-(nAYjE;kdo}3=~7jd>gXEfpX6{#+Cx2vAxg%_)7Ppt$jQQ9H_k^d#U$2W zFE86WzNpmGK0igsnTyZE$3H*YH!2`EtGqD8OMpq@`|JPHb{Z%Nd`)X|7f8-|v0mD9 ylFOfJRV{&^_vWV@{r%zp{i-Qlw~f*}4fZZSdY4g%p9|#5K41u3_;>fqQ3C*wSk^-T literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_sticker_message_13.txtproto b/test-cases/chat_item_sticker_message_13.txtproto new file mode 100644 index 00000000..3d7c2783 --- /dev/null +++ b/test-cases/chat_item_sticker_message_13.txtproto @@ -0,0 +1,165 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577851 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.NETWORK + } + recipientId = 4 + timestamp = 1695248715439 + } + ] + } + stickerMessage = StickerMessage { + reactions = [ + Reaction { + authorId = 1 + emoji = "👎" + sentTimestamp = 1668034297680 + } + ] + sticker = Sticker { + data_ = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "HLOokMZPmjwqTJ" + cdnNumber = 2 + digest = + key = + size = 464606141 + uploadTimestamp = 1664616494583 + } + blurHash = "LIM:}RB8?-^L.d4]O.nkK_ruI?od" + caption = "" + contentType = "image/webp" + fileName = "pdcKiDzzeAEZOb" + height = 39 + incrementalMac = + incrementalMacChunkSize = 2048 + width = 3530 + } + emoji = "👍" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 22 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_sticker_message_14.binproto b/test-cases/chat_item_sticker_message_14.binproto new file mode 100644 index 0000000000000000000000000000000000000000..7d0b8e66b10509c0102a53271875e18f3583e73c GIT binary patch literal 642 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@31GsPu#p$Y7M%b8*hw&jwx`Tx=XHUQ8TJ zS!WozW-@XKya;1?@;IHp{Pox8iX!tP=L#us@h48+^8dGLMCDXF)vBHD?pw2-)|=}| zPyck|Rf5*D6B5!&EFb1i?9+-?;>^rVOi$G>$V+#4E#|R~FNnk4*Do=%FfT{Qj*BZi z+^sM%xvJbPMSxl2?27q^R+=dZNKJdret;?RxSHQq$J*ZtH?;)x)C+GPn{OX>eun%t zuQLG-25V0K$q^Fc0$MVuL4ZZ#;=j9Jjv6RTdpq^`4`Yb<#9p9}E + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 1 + chatId = 2 + dateSent = 1680366577852 + outgoing = OutgoingMessageDetails { + sendStatus = [ + SendStatus { + failed = Failed { + reason = FailureReason.IDENTITY_KEY_MISMATCH + } + recipientId = 4 + } + ] + } + stickerMessage = StickerMessage { + reactions = [ + Reaction { + authorId = 4 + emoji = "💀" + sentTimestamp = 1668034297681 + sortOrder = 1784708167318 + }, + Reaction { + authorId = 1 + emoji = "👍" + sentTimestamp = 1668034297682 + sortOrder = 1899836917778 + } + ] + sticker = Sticker { + data_ = FilePointer { + attachmentLocator = AttachmentLocator { + cdnKey = "WWFqaczwFd" + cdnNumber = 3 + digest = <2e2771dbc69f3f56cf981fd64acc5040> + key = <1a96e707c00259c7264eb5417dfb20d9> + size = 228533420 + uploadTimestamp = 1866570650701 + } + caption = "GMNaiqnl" + contentType = "image/png" + height = 1838 + width = 2923 + } + emoji = "👎" + packId = + packKey = <0a0f6193b4fffb255879953e257ab94747b56ae57f372e1b97f2d8ea602ae6c8> + stickerId = 27 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_thread_merge_update_00.binproto b/test-cases/chat_item_thread_merge_update_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..97484b43371c667a32217809deefe4ae286da86e GIT binary patch literal 428 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV w6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5?~Qh5&%&_3{@OjY#bMxdsaIG04 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + threadMerge = ThreadMergeChatUpdate { + previousE164 = 18075550161 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_thread_merge_update_01.binproto b/test-cases/chat_item_thread_merge_update_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f75ff1e04534a80cbf9ee6222d4883f4faa9be81 GIT binary patch literal 436 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;1k^oT>Hx|F%y3RC+p^8(Bonz6~Z7-U6 E0kWrWzW@LL literal 0 HcmV?d00001 diff --git a/test-cases/chat_item_thread_merge_update_01.txtproto b/test-cases/chat_item_thread_merge_update_01.txtproto new file mode 100644 index 00000000..4808645e --- /dev/null +++ b/test-cases/chat_item_thread_merge_update_01.txtproto @@ -0,0 +1,127 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1833527071192 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + threadMerge = ThreadMergeChatUpdate { + previousE164 = 447700900514 + } + } + } +} \ No newline at end of file diff --git a/test-cases/chat_item_thread_merge_update_02.binproto b/test-cases/chat_item_thread_merge_update_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f81689cc5edf68fa4f19d7670c2e08e5b3cc49a6 GIT binary patch literal 435 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&*rb3C5@3;35(iNd>*t + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + chat = Chat { + id = 2 + recipientId = 4 + } +} + +Frame { + chatItem = ChatItem { + authorId = 4 + chatId = 2 + dateSent = 1695248715439 + directionless = DirectionlessMessageDetails {} + updateMessage = ChatUpdateMessage { + threadMerge = ThreadMergeChatUpdate { + previousE164 = 18075550161 + } + } + } +} \ No newline at end of file diff --git a/test-cases/expiration-timer-chat-update-message.binproto b/test-cases/expiration-timer-chat-update-message.binproto deleted file mode 100644 index 29cb01be84724d69a265cabac7c60ee0e84a48be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmZSMU=%oTgx!+MoJ%2*Y2xa)hn+k<<}RLPcyj64nP)HMe{DBjejy zcc*-Kjejy zcc*-KOGIBegt<)hRJK zInj#Y2cyteMh-Tq4~$$23Ty3k>?T-TTC`8QYW4Z6KXrNfS}P2Ws6N_bcG%JQ{Zau& zt&@yGGF(!=nK?PBd6}iT3T}xx$@zH-zNyI>iFujH#ZlTynqH;FB?<+p`2{(t3YmEd z#i@x!$r%dyX$px71v!buxrqwJ1&MiisYOam5)4{w983aC5-bKhR%VzU5@3=d=p~Ro z^dJT4BNV7?Qov{wV0+4_^oSA2V3F7%Ze$2%ykK|Y;&{a_@RD7EQGqc^Mo5ZFz`rOn zJu@#cMroaRM%eeKV diff --git a/test-cases/incoming-message-with-edits.jsonproto b/test-cases/incoming-message-with-edits.jsonproto deleted file mode 100644 index 05fb6bf4..00000000 --- a/test-cases/incoming-message-with-edits.jsonproto +++ /dev/null @@ -1,237 +0,0 @@ -// Includes incoming messages, some with edits. -[ - { - "backupTimeMs": "123456", - "version": "1" - }, - { - "account": { - "profileKey": "YQKRq+3DQklInaOaMcmlzZnN0m/1hzLiaONX7gB12dg=", - "givenName": "Boba", - "familyName": "Fett", - "avatarUrlPath": "", - "accountSettings": { - "readReceipts": false, - "sealedSenderIndicators": true, - "typingIndicators": false, - "linkPreviews": false, - "notDiscoverableByPhoneNumber": false, - "preferContactAvatars": false, - "universalExpireTimerSeconds": 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", - "releaseNotes": {} - } - }, - { - "recipient": { - "id": "3", - "distributionList": { - "distributionId": "AAAAAAAAAAAAAAAAAAAAAA==", - "distributionList": { - "allowReplies": true, - "memberRecipientIds": [], - "name": "My Story", - "privacyMode": "ALL" - } - } - } - }, - { - "recipient": { - "id": "4", - "contact": { - "aci": "X4xWjQEZR72BqruHybcZlQ==", - "profileKey": "YtHHVK+Wo4nPcVpWhC3roMEDu2Tw6kYc9JpLRMq1Q94=", - "profileSharing": true, - "profileFamilyName": "Solo", - "profileGivenName": "Han", - "registered": {}, - "hideStory": false, - } - } - }, - { - "recipient": { - "id": "5", - "contact": { - "aci": "CujGyCcHTqeyJHQXIn04kA==", - "profileKey": "cM4PAiE6xclFBl2wesio4S/tpbDfZHFpYf7BBAsnZI4=", - "profileSharing": true, - "profileFamilyName": "Bacca", - "profileGivenName": "Chew", - "registered": {}, - "hideStory": false, - } - } - }, - { - "recipient": { - "id": 6, - "group": { - "masterKey": "IK0/LD6QONKivit6q8/V+S0MjoV4MMQl4rw2w0Ez76U=", - "whitelisted": true, - "hideStory": false, - "storySendMode": "DEFAULT", - "snapshot": { - "title": { - "title": "Millenium Falcon Mechanics" - }, - "description": { - "descriptionText": "Just people in search of a plasma spanner" - }, - "disappearingMessagesTimer": { - "disappearingMessagesDuration": 0 - }, - "accessControl": { - "attributes": "MEMBER", - "members": "MEMBER", - "addFromInviteLink": "UNSATISFIABLE", - }, - "version": 12, - "members": [ - { - "userId": "CujGyCcHTqeyJHQXIn04kA==", // Chewie's ACI - "role": "ADMINISTRATOR", - "profileKey": "cM4PAiE6xclFBl2wesio4S/tpbDfZHFpYf7BBAsnZI4=", - "joinedAtVersion": 0, - }, - { - "userId": "X4xWjQEZR72BqruHybcZlQ==", // Han's ACI - "role": "ADMINISTRATOR", - "profileKey": "YtHHVK+Wo4nPcVpWhC3roMEDu2Tw6kYc9JpLRMq1Q94=", - "joinedAtVersion": 0, - }, - ], - "inviteLinkPassword": "", - "announcements_only": false - } - } - } - }, - { - "chat": { - "id": 1, - "recipientId": 6, // Group recipient - "archived": false, - "pinnedOrder": 0, - "expirationTimerMs": 0, - "muteUntilMs": 0, - "markedUnread": false, - "dontNotifyForMentionsIfMuted": false, - } - }, - // An incoming chat item that goes through a couple edits that update the body ranges. - { - "chatItem": { - "authorId": 4, // Han Solo - "chatId": 1, // Group chat with Han and Chewie (but not us; we must have left) - "dateSent": 3000, - "incoming": { - "dateReceived": 3002, // Dates corresponding to the newest edit. - "dateServerSent": 3001, - "read": true, - "sealedSender": true, - }, - "standardMessage": { - "text": { - "body": "Latest revision: ", - "bodyRanges": [ - { - "start": 17, - "length": 1, - "mentionAci": "CujGyCcHTqeyJHQXIn04kA==", - }, - { - "start": 0, // The word "Latest" - "length": 6, - "style": "ITALIC", - } - ] - }, - "reactions": [ - { - "emoji": "👀", - "authorId": 1, - "sentTimestamp": 101, - "sortOrder": 1 - }, - { - "emoji": "🥂", - "authorId": 4, // Self-react - "sentTimestamp": 102, - "sortOrder": 2 - } - ] - }, - "revisions": [ - { - "authorId": 4, - "chatId": 1, - "dateSent": 1000, - "incoming": { - "dateReceived": 1002, - "dateServerSent": 1001, - "read": true, - "sealedSender": true, - }, - "standardMessage": { - "text": { - "body": "Original message", - "bodyRanges": [ - { - "start": 9, // The word "message" - "length": 7, - "style": "ITALIC", - } - ] - } - } - }, - { - "authorId": 4, - "chatId": 1, - "dateSent": 2000, - "incoming": { - "dateReceived": 2002, - "dateServerSent": 2001, - "read": true, - "sealedSender": true, - }, - "standardMessage": { - "text": { - "body": "First revision: ", - "bodyRanges": [ - { - "start": 16, - "length": 1, - "mentionAci": "CujGyCcHTqeyJHQXIn04kA==", - } - ] - } - } - } - ] - } - }, -] diff --git a/test-cases/learned-profile-chat-update-message.binproto b/test-cases/learned-profile-chat-update-message.binproto deleted file mode 100644 index 005304286c361d8c235e63865b3e7239ed347f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmZSMU=%oTgx!+MoJ%2*Y2xa)hn+k<<}RLPcyj64nP)HMe{DBjejy zcc*-Kjejy zcc*-KHdx0OS_9DL)NUe~N z02iNIW>Im8LQ!g2W^rbI9#p|jaV3xfeIY?EexJmWR3sHfJX|av=1*(@IwDnp5yD&A LB)}q(roaRM57uIr diff --git a/test-cases/outgoing-message-with-edits.jsonproto b/test-cases/outgoing-message-with-edits.jsonproto deleted file mode 100644 index 6d2f947c..00000000 --- a/test-cases/outgoing-message-with-edits.jsonproto +++ /dev/null @@ -1,168 +0,0 @@ -// Includes an outgoing message, some with edits. -[ - { - "backupTimeMs": 123456, - "version": 1 - }, - { - "account": { - "profileKey": "YQKRq+3DQklInaOaMcmlzZnN0m/1hzLiaONX7gB12dg=", - "givenName": "Boba", - "familyName": "Fett", - "avatarUrlPath": "", - "accountSettings": { - "readReceipts": false, - "sealedSenderIndicators": true, - "typingIndicators": false, - "linkPreviews": false, - "notDiscoverableByPhoneNumber": false, - "preferContactAvatars": false, - "universalExpireTimerSeconds": 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, - "releaseNotes": {} - } - }, - { - "recipient": { - "id": 3, - "distributionList": { - "distributionId": "AAAAAAAAAAAAAAAAAAAAAA==", - "distributionList": { - "allowReplies": true, - "memberRecipientIds": [], - "name": "My Story", - "privacyMode": "ALL" - } - } - } - }, - { - "recipient": { - "id": 4, - "contact": { - "aci": "X4xWjQEZR72BqruHybcZlQ==", - "profileKey": "YtHHVK+Wo4nPcVpWhC3roMEDu2Tw6kYc9JpLRMq1Q94=", - "profileSharing": true, - "profileFamilyName": "Solo", - "profileGivenName": "Han", - "registered": {}, - "hideStory": false, - } - } - }, - { - "chat": { - "id": 1, - "recipientId": 4, // 1:1 chat with Han - "archived": false, - "pinnedOrder": 0, - "expirationTimerMs": 0, - "muteUntilMs": 0, - "markedUnread": false, - "dontNotifyForMentionsIfMuted": false, - } - }, - // An outgoing chat item that goes through a couple edits that update the body ranges. - { - "chatItem": { - "authorId": 1, - "chatId": 1, - "dateSent": 3000, - "outgoing": { - "sendStatus": [ - { - "recipientId": 4, - "timestamp": 3001, - "sent": { - "sealedSender": true - } - } - ] - }, - "standardMessage": { - "text": { - "body": "Latest revision", - }, - "reactions": [ - { - "emoji": "👀", - "authorId": 1, // Self-react - "sentTimestamp": 101, - "sortOrder": 1 - }, - { - "emoji": "🥂", - "authorId": 4, - "sentTimestamp": 102, - "sortOrder": 2 - } - ] - }, - "revisions": [ - { - "authorId": 1, - "chatId": 1, - "dateSent": 1000, - "outgoing": { - "sendStatus": [ - { - "recipientId": 4, - "timestamp": 1001, - "read": { - "sealedSender": true - } - } - ] - }, - "standardMessage": { - "text": { - "body": "Original message", - } - } - }, - { - "authorId": 1, - "chatId": 1, - "dateSent": 2000, - "outgoing": { - "sendStatus": [ - { - "recipientId": 4, - "timestamp": 2001, - "delivered": { - "sealedSender": true - } - } - ] - }, - "standardMessage": { - "text": { - "body": "First revision" - } - } - } - ] - } - }, -] diff --git a/test-cases/profile-change-chat-update-message.binproto b/test-cases/profile-change-chat-update-message.binproto deleted file mode 100644 index 937991ded4613810ae9b6f46fb2b446f9c3d67bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmZSMU=%oTgx!+MoJ%2*Y2xa)hn+k<<}RLPcyj64nP)HMe{DBjejy zcc*-K zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zm?eb7tVFm3bPjFl30U_pc=L3>n{wHH HD-{?4?OA0K literal 0 HcmV?d00001 diff --git a/test-cases/recipient_call_link_00.txtproto b/test-cases/recipient_call_link_00.txtproto new file mode 100644 index 00000000..ee8c3047 --- /dev/null +++ b/test-cases/recipient_call_link_00.txtproto @@ -0,0 +1,100 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + callLink = CallLink { + name = "" + restrictions = Restrictions.NONE + rootKey = <2cc2b48c50aefe53b3974ed91e6b4ea9> + } + } +} \ No newline at end of file diff --git a/test-cases/recipient_call_link_01.binproto b/test-cases/recipient_call_link_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3368c47bcc50ae0c47b0f97d10f3f94d1c8ec887 GIT binary patch literal 382 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}ZnEix&th~4cbPjFl30U_pc=L3>n{wHH zD}@xESD(=juIFZY|02O)jgDck+lsGu4lJL>^mD1Oz=?M^JES-QgUh^ + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + callLink = CallLink { + adminKey = + expirationMs = 422394398733600624 + name = "QSvJcbzG" + restrictions = Restrictions.ADMIN_APPROVAL + rootKey = <2cc2b48c50aefe53b3974ed91e6b4ea9> + } + } +} \ No newline at end of file diff --git a/test-cases/recipient_call_link_02.binproto b/test-cases/recipient_call_link_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..3505582d42db4642e2a2c87500b8db6508949279 GIT binary patch literal 349 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn01A;fzB1sIkcrGVBNpq&C~sE%4Pel cl;R9_2`P?n%FcHOI<0Zux#iC`etc5{0Gc>&IRF3v literal 0 HcmV?d00001 diff --git a/test-cases/recipient_call_link_02.txtproto b/test-cases/recipient_call_link_02.txtproto new file mode 100644 index 00000000..37842a46 --- /dev/null +++ b/test-cases/recipient_call_link_02.txtproto @@ -0,0 +1,101 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + callLink = CallLink { + expirationMs = 8996438946018987777 + name = "SDTsXBkoG" + restrictions = Restrictions.NONE + rootKey = <2cc2b48c50aefe53b3974ed91e6b4ea9> + } + } +} \ No newline at end of file diff --git a/test-cases/recipient_contacts_00.binproto b/test-cases/recipient_contacts_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..925c9f6931d54910993eb63c64c1f5718d9c8f32 GIT binary patch literal 361 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zm@S3OIaq{@xdb|HzB^(4-fiwi!CUKN p+y8S434A*7Erlm(y*@*xX5pL-M=})JHf?*+%&P%(SO%jN0{{tOa>D=s literal 0 HcmV?d00001 diff --git a/test-cases/recipient_contacts_00.txtproto b/test-cases/recipient_contacts_00.txtproto new file mode 100644 index 00000000..fe6bc0d9 --- /dev/null +++ b/test-cases/recipient_contacts_00.txtproto @@ -0,0 +1,106 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <88d9eec83bef469db111daaf5d87ff09> + blocked = true + e164 = 447700900102 + hideStory = true + pni = + profileSharing = true + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} \ No newline at end of file diff --git a/test-cases/recipient_contacts_01.binproto b/test-cases/recipient_contacts_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..962d9e31f7fcd7c7ba7e715788068bb40216ef79 GIT binary patch literal 413 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zm~(})Iaq|!xdb|HzB^(4-fiwi!CUKN z+y8S434A*7Erlm(y*@*xX5pL-M>3=YtK1`lT|$Z@oU-%XJ+k#I4HSB>KV4C4!04sW rCiRiuSvBukize3s6Qz%N^EB-;n|9PGm + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <88d9eec83bef469db111daaf5d87ff09> + e164 = 33639984013 + notRegistered = NotRegistered {} + pni = + profileFamilyName = "" + profileGivenName = "" + profileKey = <861af10f43256ed684290aa03422f16e9e293e6982b87e2036106eec0da607bf> + username = "zGYSDTsXBkoGHk.90" + visibility = Visibility.HIDDEN + } + id = 4 + } +} \ No newline at end of file diff --git a/test-cases/recipient_contacts_02.binproto b/test-cases/recipient_contacts_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0844f7154e40bc9ec4598a12ac36dd14adcec55f GIT binary patch literal 414 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}ZnDc~kI9P--xCA3@N^Q!#ZvJ0ZBa{cnW^b8FZ+BR)_(aZ~UIa2^* r6kkfFSCoHbc$!N{dV!}`5@)Hab6|LBX{l=lqZ2#Fjm59Gt}_Jy + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <88d9eec83bef469db111daaf5d87ff09> + blocked = true + e164 = 447700900102 + hideStory = true + notRegistered = NotRegistered { + unregisteredTimestamp = 1833527071192 + } + pni = + profileFamilyName = "uECQWuuuE" + profileGivenName = "diJZOYWfDTgpIJ" + profileSharing = true + username = "nzNFkpZzmNnJ.11" + visibility = Visibility.HIDDEN_MESSAGE_REQUEST + } + id = 4 + } +} \ No newline at end of file diff --git a/test-cases/recipient_contacts_03.binproto b/test-cases/recipient_contacts_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..391b0b427f48827cb5db1885fce5f2883e5639b8 GIT binary patch literal 422 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn9GDpI9P-VxCA!r{p^^xCMHSb!BCf5QJrH^^@H0?5* zcGM}D3FN)uUB + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <88d9eec83bef469db111daaf5d87ff09> + e164 = 33639984013 + notRegistered = NotRegistered { + unregisteredTimestamp = 1695248715439 + } + pni = + profileFamilyName = "CmCqQNEWGrAz" + profileGivenName = "ySkLQGERtwS" + profileKey = <861af10f43256ed684290aa03422f16e9e293e6982b87e2036106eec0da607bf> + visibility = Visibility.VISIBLE + } + id = 4 + } +} \ No newline at end of file diff --git a/test-cases/recipient_distribution_list_00.binproto b/test-cases/recipient_distribution_list_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..c25a57bb911ca0fd2c6d45db0b46ea4ebff6e372 GIT binary patch literal 632 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?dDMCpcY(jAu7O-Miz@{)AVgZLj6J8X>>YP}VpOeJym7kGUoS$dKATK1#!LB69 eB~YZ<9 literal 0 HcmV?d00001 diff --git a/test-cases/recipient_distribution_list_00.txtproto b/test-cases/recipient_distribution_list_00.txtproto new file mode 100644 index 00000000..0c957c10 --- /dev/null +++ b/test-cases/recipient_distribution_list_00.txtproto @@ -0,0 +1,148 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000005> + e164 = 16105550103 + pni = <00000000000000000000000000000006> + profileFamilyName = "Johnson" + profileGivenName = "Carol" + profileKey = <0820820820820820820820820820820820820820820820820820820820820820> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 6 + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + deletionTimestamp = 1833527071192 + distributionId = <72298758a63c85fc2720a157e24129e4> + } + id = 7 + } +} \ No newline at end of file diff --git a/test-cases/recipient_distribution_list_01.binproto b/test-cases/recipient_distribution_list_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..aa120955e043794e3a3b896ea20903484ad0e428 GIT binary patch literal 645 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?dDMCpcY(jAu7O-Miz@{)AVgZLj6J8X>>YP}VpOeJym7kGUoS$dKpd+Nk!LFpn pB~YZ<9BTCZ3lk(Fe{i{IH2>>(zlMes@ literal 0 HcmV?d00001 diff --git a/test-cases/recipient_distribution_list_01.txtproto b/test-cases/recipient_distribution_list_01.txtproto new file mode 100644 index 00000000..e6f8ba92 --- /dev/null +++ b/test-cases/recipient_distribution_list_01.txtproto @@ -0,0 +1,152 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000005> + e164 = 16105550103 + pni = <00000000000000000000000000000006> + profileFamilyName = "Johnson" + profileGivenName = "Carol" + profileKey = <0820820820820820820820820820820820820820820820820820820820820820> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 6 + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <72298758a63c85fc2720a157e24129e4> + distributionList = DistributionList { + allowReplies = true + name = "jaXtfWbogYOz" + privacyMode = PrivacyMode.ONLY_WITH + } + } + id = 7 + } +} \ No newline at end of file diff --git a/test-cases/recipient_distribution_list_02.binproto b/test-cases/recipient_distribution_list_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..537dab4113d6f5073ea15bc33b25ee6d470e9a03 GIT binary patch literal 647 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?dDMCpcY(jAu7O-Miz@{)AVgZLj6J8X>>YP}VpOeJym7kGUoS$dKpeLlm!LFpi sB~YZ<9 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000005> + e164 = 16105550103 + pni = <00000000000000000000000000000006> + profileFamilyName = "Johnson" + profileGivenName = "Carol" + profileKey = <0820820820820820820820820820820820820820820820820820820820820820> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 6 + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <72298758a63c85fc2720a157e24129e4> + distributionList = DistributionList { + memberRecipientIds = [ + 4 + ] + name = "SvJcbzGYSDTsX" + privacyMode = PrivacyMode.ALL_EXCEPT + } + } + id = 7 + } +} \ No newline at end of file diff --git a/test-cases/recipient_distribution_list_03.binproto b/test-cases/recipient_distribution_list_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..4101f2781b47725c21a96e7c229e58e1549412ac GIT binary patch literal 645 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?dDMCpcY(jAu7O-Miz@{)AVgZLj6J8X>>YP}VpOeJym7kGUoS$dKpd+Nk!LFpn qB~YZ<9BTCZ3lk(Fe{i}e{$qWEA0+SH{ literal 0 HcmV?d00001 diff --git a/test-cases/recipient_distribution_list_03.txtproto b/test-cases/recipient_distribution_list_03.txtproto new file mode 100644 index 00000000..f0a5fe8a --- /dev/null +++ b/test-cases/recipient_distribution_list_03.txtproto @@ -0,0 +1,152 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000005> + e164 = 16105550103 + pni = <00000000000000000000000000000006> + profileFamilyName = "Johnson" + profileGivenName = "Carol" + profileKey = <0820820820820820820820820820820820820820820820820820820820820820> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 6 + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <72298758a63c85fc2720a157e24129e4> + distributionList = DistributionList { + allowReplies = true + name = "jaXtfWbogYOz" + privacyMode = PrivacyMode.ALL + } + } + id = 7 + } +} \ No newline at end of file diff --git a/test-cases/recipient_distribution_list_04.binproto b/test-cases/recipient_distribution_list_04.binproto new file mode 100644 index 0000000000000000000000000000000000000000..f5bced75af057270c8c71e4171d03fc71e803a6c GIT binary patch literal 649 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?dDMCpcY(jAu7O-Miz@{)AVgZLj6J8X>>YP}VpOeJym7kGUoS$dKU?8N&!LFpm uB~YZ<9 + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000005> + e164 = 16105550103 + pni = <00000000000000000000000000000006> + profileFamilyName = "Johnson" + profileGivenName = "Carol" + profileKey = <0820820820820820820820820820820820820820820820820820820820820820> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 6 + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <72298758a63c85fc2720a157e24129e4> + distributionList = DistributionList { + memberRecipientIds = [ + 4, + 5, + 6 + ] + name = "SvJcbzGYSDTsX" + privacyMode = PrivacyMode.ONLY_WITH + } + } + id = 7 + } +} \ No newline at end of file diff --git a/test-cases/recipient_groups_00.binproto b/test-cases/recipient_groups_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..92a803801b5ff19172aee69ed8715faffc9ae44e GIT binary patch literal 1134 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?dDMCpcY(jAu7O-Miz@{)AVgZLj6J8X>>YP}VpOeJym7kGUoSz5r1v?gBuwz)l zp)dnt36H^HyeNv7~0XwEX`qR{E>8Tswgg0KXIgp#T5? literal 0 HcmV?d00001 diff --git a/test-cases/recipient_groups_00.txtproto b/test-cases/recipient_groups_00.txtproto new file mode 100644 index 00000000..566dc05a --- /dev/null +++ b/test-cases/recipient_groups_00.txtproto @@ -0,0 +1,227 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000005> + e164 = 16105550103 + pni = <00000000000000000000000000000006> + profileFamilyName = "Johnson" + profileGivenName = "Carol" + profileKey = <0820820820820820820820820820820820820820820820820820820820820820> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 6 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000007> + e164 = 16105550104 + pni = <00000000000000000000000000000008> + profileFamilyName = "Brown" + profileGivenName = "Dan" + profileKey = <0c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 7 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000009> + e164 = 16105550105 + pni = <0000000000000000000000000000000a> + profileFamilyName = "Green" + profileGivenName = "Eve" + profileKey = <1041041041041041041041041041041041041041041041041041041041041041> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 8 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <0000000000000000000000000000000b> + e164 = 16105550106 + pni = <0000000000000000000000000000000c> + profileFamilyName = "Johnson" + profileGivenName = "Frank" + profileKey = <1451451451451451451451451451451451451451451451451451451451451451> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 9 + } +} + +Frame { + recipient = Recipient { + group = Group { + hideStory = true + masterKey = <2cc2b48c50aefe53b3974ed91e6b4ea924f9baa8e77bcc2f537f0b02efe86030> + snapshot = GroupSnapshot { + accessControl = AccessControl { + addFromInviteLink = AccessRequired.ADMINISTRATOR + attributes = AccessRequired.MEMBER + members = AccessRequired.MEMBER + } + announcements_only = true + avatarUrl = "" + disappearingMessagesTimer = GroupAttributeBlob { + disappearingMessagesDuration = 1889272792 + } + inviteLinkPassword = <97130bcd791cedfafc0e29956dc1e0cd18b0df35d2dda82a4ffea322fd2aa72b> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + role = Role.DEFAULT + userId = <00000000000000640000000000000064> + } + ] + title = GroupAttributeBlob { + title = "ogYOzQSvJcbzGY" + } + version = 582678964 + } + storySendMode = StorySendMode.DEFAULT + whitelisted = true + } + id = 10 + } +} \ No newline at end of file diff --git a/test-cases/recipient_groups_01.binproto b/test-cases/recipient_groups_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..433e01db314b64b8b03771536bae09f052dfb219 GIT binary patch literal 1371 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?dDMCpcY(jAu7O-Miz@{)AVgZLj6J8X>>YP}VpOeJym7kGUoSz5r1v?gBuwz)l zp)dnt36H^HyeNv?9)QZI1f}B*n0DOU@=%ab^SLMD>IDrz%0NdrGPhG0aG0oeXIhEQVMvJ3otPu=}UoTiWHDOLdB1h zK9>lFOW6f5^B<$cy8j>UE-~`5#!${Fq(CSsC|tTf?el-LAcYwv^X)HXy#D92J=t&N lYU6Ls8XJSyg|@C;9rI|JjNq50S&|sWa|?WX@OkPDV*pP?F8%-j literal 0 HcmV?d00001 diff --git a/test-cases/recipient_groups_01.txtproto b/test-cases/recipient_groups_01.txtproto new file mode 100644 index 00000000..9745fa88 --- /dev/null +++ b/test-cases/recipient_groups_01.txtproto @@ -0,0 +1,256 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000005> + e164 = 16105550103 + pni = <00000000000000000000000000000006> + profileFamilyName = "Johnson" + profileGivenName = "Carol" + profileKey = <0820820820820820820820820820820820820820820820820820820820820820> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 6 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000007> + e164 = 16105550104 + pni = <00000000000000000000000000000008> + profileFamilyName = "Brown" + profileGivenName = "Dan" + profileKey = <0c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 7 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000009> + e164 = 16105550105 + pni = <0000000000000000000000000000000a> + profileFamilyName = "Green" + profileGivenName = "Eve" + profileKey = <1041041041041041041041041041041041041041041041041041041041041041> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 8 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <0000000000000000000000000000000b> + e164 = 16105550106 + pni = <0000000000000000000000000000000c> + profileFamilyName = "Johnson" + profileGivenName = "Frank" + profileKey = <1451451451451451451451451451451451451451451451451451451451451451> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 9 + } +} + +Frame { + recipient = Recipient { + group = Group { + masterKey = <2cc2b48c50aefe53b3974ed91e6b4ea924f9baa8e77bcc2f537f0b02efe86030> + snapshot = GroupSnapshot { + accessControl = AccessControl { + addFromInviteLink = AccessRequired.UNSATISFIABLE + attributes = AccessRequired.ADMINISTRATOR + members = AccessRequired.ADMINISTRATOR + } + avatarUrl = "https://example.com/LQGERtwSQuECQ" + description = GroupAttributeBlob { + descriptionText = "nzNFkpZzmNnJ" + } + disappearingMessagesTimer = GroupAttributeBlob { + disappearingMessagesDuration = 943323026 + } + inviteLinkPassword = <98749f3fd268ebfe4cb7634ea9ab33f68328b1520712b5adab5ce2a61c11f4a5> + members = [ + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.ADMINISTRATOR + userId = <00000000000000000000000000000003> + }, + Member { + profileKey = <0820820820820820820820820820820820820820820820820820820820820820> + role = Role.DEFAULT + userId = <00000000000000000000000000000005> + }, + Member { + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + role = Role.DEFAULT + userId = <00000000000000640000000000000064> + } + ] + membersPendingAdminApproval = [ + MemberPendingAdminApproval { + profileKey = <1041041041041041041041041041041041041041041041041041041041041041> + timestamp = 1889758719954 + userId = <00000000000000000000000000000009> + } + ] + membersPendingProfileKey = [ + MemberPendingProfileKey { + addedByUserId = <00000000000000000000000000000001> + member = Member { + profileKey = <> + role = Role.DEFAULT + userId = <00000000000000000000000000000007> + } + timestamp = 1727847481262 + } + ] + members_banned = [ + MemberBanned { + timestamp = 1776014913654 + userId = <0000000000000000000000000000000b> + } + ] + title = GroupAttributeBlob { + title = "DTsXBkoGHkm" + } + version = 1321978533 + } + storySendMode = StorySendMode.DISABLED + } + id = 10 + } +} \ No newline at end of file diff --git a/test-cases/recipient_groups_02.binproto b/test-cases/recipient_groups_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..6c5dab9ffa3e4d38ce786e6da82c1bbfc92cdaf3 GIT binary patch literal 1291 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn3IGOI9P;YFqAP0p=)GPnEL3>e`_xV z6w|P9qF5bsGLuu2Sc7vjOERn&5`^M7ScRf6tYF5lf<<8(#0nMxN4zMC85r70tX}zf zsl`?dDMCpcY(jAu7O-Miz@{)AVgZLj6J8X>>YP}VpOeJym7kGUoSz5r1v?gBuwz)l zp)dnt36H^HyeNvfUnclxhFaRffCavpCLIPZT`RS4VRe`}}Udc&S?vYU(N^Gu) zWjP)dQt}xkB?ZM+`ueFAiMa(isd~xzx%#E0rLJzyxz2@weoAZ-`?|JVVA5jaU=m=G zU^e*PbLljjl^I5I0A@5Pf{7Q4K4t+XDFwXA5tvx9=wk)hhc}f0(;$+*6lh*b0qG-D rY6U6iO_)$PQ`G + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000001> + e164 = 16105550101 + pni = <00000000000000000000000000000002> + profileFamilyName = "Smith" + profileGivenName = "Alice" + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 4 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000003> + e164 = 16105550102 + pni = <00000000000000000000000000000004> + profileFamilyName = "Jones" + profileGivenName = "Bob" + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 5 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000005> + e164 = 16105550103 + pni = <00000000000000000000000000000006> + profileFamilyName = "Johnson" + profileGivenName = "Carol" + profileKey = <0820820820820820820820820820820820820820820820820820820820820820> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 6 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000007> + e164 = 16105550104 + pni = <00000000000000000000000000000008> + profileFamilyName = "Brown" + profileGivenName = "Dan" + profileKey = <0c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30c30> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 7 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <00000000000000000000000000000009> + e164 = 16105550105 + pni = <0000000000000000000000000000000a> + profileFamilyName = "Green" + profileGivenName = "Eve" + profileKey = <1041041041041041041041041041041041041041041041041041041041041041> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 8 + } +} + +Frame { + recipient = Recipient { + contact = Contact { + aci = <0000000000000000000000000000000b> + e164 = 16105550106 + pni = <0000000000000000000000000000000c> + profileFamilyName = "Johnson" + profileGivenName = "Frank" + profileKey = <1451451451451451451451451451451451451451451451451451451451451451> + registered = Registered {} + visibility = Visibility.VISIBLE + } + id = 9 + } +} + +Frame { + recipient = Recipient { + group = Group { + hideStory = true + masterKey = <2cc2b48c50aefe53b3974ed91e6b4ea924f9baa8e77bcc2f537f0b02efe86030> + snapshot = GroupSnapshot { + accessControl = AccessControl { + addFromInviteLink = AccessRequired.ADMINISTRATOR + attributes = AccessRequired.MEMBER + members = AccessRequired.MEMBER + } + announcements_only = true + avatarUrl = "https://example.com/uuuEFCmCqQN" + description = GroupAttributeBlob { + descriptionText = "EavlHx" + } + disappearingMessagesTimer = GroupAttributeBlob { + disappearingMessagesDuration = 705496382 + } + inviteLinkPassword = <2e90907199154fed979ea98f19d848c17b785ff80dd2d18f5aa092c1745e712b> + members = [ + Member { + profileKey = <0000000000000000000000000000000000000000000000000000000000000000> + role = Role.DEFAULT + userId = <00000000000000000000000000000001> + }, + Member { + profileKey = <0410410410410410410410410410410410410410410410410410410410410410> + role = Role.ADMINISTRATOR + userId = <00000000000000000000000000000003> + }, + Member { + profileKey = <0820820820820820820820820820820820820820820820820820820820820820> + role = Role.DEFAULT + userId = <00000000000000000000000000000005> + }, + Member { + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + role = Role.DEFAULT + userId = <00000000000000640000000000000064> + } + ] + title = GroupAttributeBlob { + title = "ogYOzQSvJcbzGY" + } + version = 1769244279 + } + storySendMode = StorySendMode.ENABLED + whitelisted = true + } + id = 10 + } +} \ No newline at end of file diff --git a/test-cases/registered-blocked-contact.binproto b/test-cases/registered-blocked-contact.binproto deleted file mode 100644 index 7f0dc12dad33910cd1e51bd8d5cf791d613b38ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmd<&U=+CVYr*{QhL&9BTndRy6IZ`I?BwY&ckwL4lS|LeJbNksYrD~-jK|^c7)o#6 zP-1b)PfFBcaZ4>J@nRQXEMVwhWMUIy;b7Ea08vav3>rde9L!2eTmlSeK#Grx!?#i) zxFo-*Qh-r{xk#vhgGDHZOTeLQW*n=bgVV|CYfzYe l^V!#sxJ8eDMKOCM<|VNN19fIFS~0Lm0bMG<2%?w-SO7r5POks} diff --git a/test-cases/registered-blocked-contact.jsonproto b/test-cases/registered-blocked-contact.jsonproto deleted file mode 100644 index 323a290a..00000000 --- a/test-cases/registered-blocked-contact.jsonproto +++ /dev/null @@ -1,90 +0,0 @@ -[ - { - "version": "1", - "backupTimeMs": "1715636551000" - }, - { - "account": { - "profileKey": "YQKRq+3DQklInaOaMcmlzZnN0m/1hzLiaONX7gB12dg=", - "givenName": "Boba", - "familyName": "Fett", - "avatarUrlPath": "", - "accountSettings": { - "readReceipts": false, - "sealedSenderIndicators": true, - "typingIndicators": false, - "linkPreviews": false, - "notDiscoverableByPhoneNumber": false, - "preferContactAvatars": false, - "universalExpireTimerSeconds": 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", - "releaseNotes": {} - } - }, - { - "recipient": { - "id": "3", - "distributionList": { - "distributionId": "AAAAAAAAAAAAAAAAAAAAAA==", - "distributionList": { - "allowReplies": true, - "memberRecipientIds": [], - "name": "My Story", - "privacyMode": "ALL" - } - } - } - }, - { - "recipient": { - "id": "4", - "contact": { - "aci": "QHaZXgUxQEKp5B5np33zWA==", - "pni": "JvwCorpYSn2wgZ2iOXFXCg==", - "username": "han_solo.44", - "e164": "17735550199", - "blocked": true, - "visibility": "HIDDEN", - "registered": {}, - "profileKey": "nH0NX5+LqtIe85lAy958oyRNH9INMHFn2eb1VF6i4/o=", - "profileSharing": false, - "profileGivenName": "Han", - "profileFamilyName": "Solo", - "hideStory": true - } - } - }, - { - "chat": { - "id": "1", - "recipientId": "1" - } - }, - { - "chat": { - "id": "2", - "recipientId": "4" - } - } -] diff --git a/test-cases/session-switchover-chat-update-message.binproto b/test-cases/session-switchover-chat-update-message.binproto deleted file mode 100644 index b856d50ac6d9923d16c6880081401973535b20b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmZSMU=%oTgx!+MoJ%2*Y2xa)hn+k<<}RLPcyj64nP)HMe{DBjejy zcc*-Kjejy zcc*-KE{J0bp*4pdXO|ZDMXrFe~ z>ho8B>hkopRu~*neYD5yu%q$&r2>pv8bbVByg+9-=jZ1rxEJM@7DTZtu{!1C7ZoTm zNib-!aWDxmNw663ut@=ZCBOorm;_h_l=whA3C19XDi$s#AR8*c1QlR{2{1zim|+4e zPyrU002@>QZYVocfE}iS11i7)6X1jjaKZ$*paNVF0Y(XKQ~?$V9;g5}Oa(8h0E+}4 vRDcJj0z-fws)84$LI5hj2NMv43h;vjn1InLgscK2AdIYn5hx%66%YUb4U%)* diff --git a/test-cases/simple-chat-update-message.jsonproto b/test-cases/simple-chat-update-message.jsonproto deleted file mode 100644 index e528b9d0..00000000 --- a/test-cases/simple-chat-update-message.jsonproto +++ /dev/null @@ -1,391 +0,0 @@ -// Includes at least one message for each of the "simple chat updates", -// excluding "release notes" messages that aren't supported on all platforms -// yet. -[ - { - "backupTimeMs": 123456, - "version": 1 - }, - { - "account": { - "profileKey": "YQKRq+3DQklInaOaMcmlzZnN0m/1hzLiaONX7gB12dg=", - "givenName": "Boba", - "familyName": "Fett", - "avatarUrlPath": "", - "accountSettings": { - "readReceipts": false, - "sealedSenderIndicators": true, - "typingIndicators": false, - "linkPreviews": false, - "notDiscoverableByPhoneNumber": false, - "preferContactAvatars": false, - "universalExpireTimerSeconds": 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, - "releaseNotes": {} - } - }, - { - "recipient": { - "id": 3, - "distributionList": { - "distributionId": "AAAAAAAAAAAAAAAAAAAAAA==", - "distributionList": { - "allowReplies": true, - "memberRecipientIds": [], - "name": "My Story", - "privacyMode": "ALL" - } - } - } - }, - { - "recipient": { - "id": 4, - "contact": { - "aci": "X4xWjQEZR72BqruHybcZlQ==", - "profileKey": "YtHHVK+Wo4nPcVpWhC3roMEDu2Tw6kYc9JpLRMq1Q94=", - "profileSharing": true, - "profileFamilyName": "Solo", - "profileGivenName": "Han", - "registered": {}, - "hideStory": false, - } - } - }, - { - "recipient": { - "id": 5, - "group": { - "masterKey": "IK0/LD6QONKivit6q8/V+S0MjoV4MMQl4rw2w0Ez76U=", - "whitelisted": true, - "hideStory": false, - "storySendMode": "DEFAULT", - "snapshot": { - "title": { - "title": "My Cool Group" - }, - "description": { - "descriptionText": "Blorp" - }, - "disappearingMessagesTimer": { - "disappearingMessagesDuration": 0 - }, - "accessControl": { - "attributes": "MEMBER", - "members": "MEMBER", - "addFromInviteLink": "UNSATISFIABLE", - }, - "version": 12, - "members": [], - "inviteLinkPassword": "", - "announcements_only": false - } - } - } - }, - // 1:1 chat with "Han Solo" - { - "chat": { - "id": 1, - "recipientId": 4 - } - }, - // Group chat with "My Cool Group" - { - "chat": { - "id": 2, - "recipientId": 5, - "archived": false, - "pinnedOrder": 0, - "expirationTimerMs": 0, - "muteUntilMs": 0, - "markedUnread": false, - "dontNotifyForMentionsIfMuted": false, - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 1, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "JOINED_SIGNAL" - } - } - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 2, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "IDENTITY_UPDATE" - } - } - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 3, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "IDENTITY_VERIFIED" - } - } - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 4, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "IDENTITY_DEFAULT" - } - } - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 6, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "CHANGE_NUMBER" - } - } - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 7, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "END_SESSION" - } - } - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 8, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "CHAT_SESSION_REFRESH" - } - } - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 9, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "BAD_DECRYPT" - } - } - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 10, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "PAYMENTS_ACTIVATED" - } - } - } - }, - { - "chatItem": { - "authorId": 1, - "chatId": 1, - "dateSent": 11, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "PAYMENTS_ACTIVATED" - } - } - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 12, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "PAYMENT_ACTIVATION_REQUEST" - } - } - } - }, - { - "chatItem": { - "authorId": 1, - "chatId": 1, - "dateSent": 13, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "PAYMENT_ACTIVATION_REQUEST" - } - } - } - }, - { - "chatItem": { - "authorId": 4, - "chatId": 1, - "dateSent": 14, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "UNSUPPORTED_PROTOCOL_MESSAGE" - } - } - } - }, - { - "chatItem": { - "authorId": 1, - "chatId": 1, - "dateSent": 14, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "UNSUPPORTED_PROTOCOL_MESSAGE" - } - } - } - }, - { - "chatItem": { - "authorId": 1, - "chatId": 1, - "dateSent": 15, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "REPORTED_SPAM" - } - } - } - }, - // In the 1:1 chat - { - "chatItem": { - "authorId": 1, - "chatId": 1, - "dateSent": 16, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "BLOCKED" - } - } - } - }, - // In the 1:1 chat - { - "chatItem": { - "authorId": 1, - "chatId": 1, - "dateSent": 17, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "UNBLOCKED" - } - } - } - }, - // In the group chat - { - "chatItem": { - "authorId": 1, - "chatId": 2, - "dateSent": 18, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "BLOCKED" - } - } - } - }, - // In the group chat - { - "chatItem": { - "authorId": 1, - "chatId": 2, - "dateSent": 19, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "UNBLOCKED" - } - } - } - }, - { - "chatItem": { - "authorId": 1, - "chatId": 1, - "dateSent": 20, - "directionless": {}, - "updateMessage": { - "simpleUpdate": { - "type": "MESSAGE_REQUEST_ACCEPTED" - } - } - } - }, -] diff --git a/test-cases/simple-chat-update-release-notes-donation-request.binproto b/test-cases/simple-chat-update-release-notes-donation-request.binproto deleted file mode 100644 index e9b0cdff45f63b7fa4aa5a81e101b29065c0c931..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144 zcmZSMU=%oTgx!+MoJ%2*Y2xa)hn+k<<}RLPcyj64nP)HMe{DB zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 hWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zm;s8-TiXBt literal 0 HcmV?d00001 diff --git a/test-cases/standard_frames.txtproto b/test-cases/standard_frames.txtproto new file mode 100644 index 00000000..e08e697e --- /dev/null +++ b/test-cases/standard_frames.txtproto @@ -0,0 +1,90 @@ +// This file was auto-generated! It's only meant to show you what's in the .binproto. Do not edit! + +BackupInfo { + backupTimeMs = 1715636551000 + version = 1 +} + +Frame { + account = AccountData { + accountSettings = AccountSettings { + customChatColors = [ + CustomChatColor { + id = 1 + solid = -16777216 + }, + CustomChatColor { + id = 2 + solid = -65536 + }, + CustomChatColor { + id = 3 + solid = -16711936 + } + ] + displayBadgesOnProfile = true + hasCompletedUsernameOnboarding = true + hasSeenGroupStoryEducationSheet = true + hasSetMyStoriesPrivacy = true + hasViewedOnboardingStory = true + keepMutedChatsArchived = true + linkPreviews = true + notDiscoverableByPhoneNumber = true + phoneNumberSharingMode = PhoneNumberSharingMode.NOBODY + preferContactAvatars = true + preferredReactionEmoji = [ + "a", + "b", + "c" + ] + readReceipts = true + sealedSenderIndicators = true + storiesDisabled = true + storyViewReceiptsEnabled = true + typingIndicators = true + universalExpireTimerSeconds = 3600 + } + avatarUrlPath = "" + donationSubscriberData = SubscriberData { + currencyCode = "USD" + manuallyCancelled = true + subscriberId = + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} \ No newline at end of file diff --git a/test-cases/sticker_pack_00.binproto b/test-cases/sticker_pack_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b8e84db41ade6ef20c82ba7cf38cc9afc03aadbd GIT binary patch literal 358 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn9a0IxCC?#ZRrVE_b+(!bibQ&*?ud9 n6rNX~(GRZYW_tf3!C;M!VX)hZuXheCpT_iasj$F_cQ-o#- + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + stickerPack = StickerPack { + packId = <2cc2b48c50aefe53b3974ed91e6b4ea9> + packKey = + } +} \ No newline at end of file diff --git a/test-cases/sticker_pack_01.binproto b/test-cases/sticker_pack_01.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b8e84db41ade6ef20c82ba7cf38cc9afc03aadbd GIT binary patch literal 358 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn9a0IxCC?#ZRrVE_b+(!bibQ&*?ud9 n6rNX~(GRZYW_tf3!C;M!VX)hZuXheCpT_iasj$F_cQ-o#- + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + stickerPack = StickerPack { + packId = <2cc2b48c50aefe53b3974ed91e6b4ea9> + packKey = + } +} \ No newline at end of file diff --git a/test-cases/sticker_pack_02.binproto b/test-cases/sticker_pack_02.binproto new file mode 100644 index 0000000000000000000000000000000000000000..b8e84db41ade6ef20c82ba7cf38cc9afc03aadbd GIT binary patch literal 358 zcmd<&U=+CVYr*{QhVK};UNdqjBr;80{r0evr^npIvkXrzJv;O4rTnk$MvpQchreSe zy?H~3Cn-NEF+MG|q(slmOv;Q)AvHaw_yXSs0oKR6YrNb)O*@?$^1ZWBxkL1&=na*> zdXt3&5)U#iVz}xg-g$^s;)Z9{2MHD>7AK%7S}blrW2`i}6yEI4IBsGrrMKAl>~i;$ zJ+8s2N{JEL{^z0|+*{#$E>%*9IW*Wsg3-$h=v+n#Mg>LQ6Kf`}EAr=lsEd~(9 zWW=B*q{6|hq`)NrRE`3qc(^!xD;0uE@{1}Zn9a0IxCC?#ZRrVE_b+(!bibQ&*?ud9 n6rNX~(GRZYW_tf3!C;M!VX)hZuXheCpT_iasj$F_cQ-o#- + } + familyName = "Fett" + givenName = "Boba" + profileKey = <610291abedc34249489da39a31c9a5cd99cdd26ff58732e268e357ee0075d9d8> + username = "boba_fett.66" + usernameLink = UsernameLink { + color = Color.OLIVE + entropy = <65675c73d00eb01005e3bb7c4a47f296cb6554f78981238815e915d824fd2e93> + serverId = <61c101a200d5421789c20518d8497af0> + } + } +} + +Frame { + recipient = Recipient { + id = 1 + self = Self {} + } +} + +Frame { + recipient = Recipient { + id = 2 + releaseNotes = ReleaseNotes {} + } +} + +Frame { + recipient = Recipient { + distributionList = DistributionListItem { + distributionId = <00000000000000000000000000000000> + distributionList = DistributionList { + name = "My Story" + privacyMode = PrivacyMode.ALL + } + } + id = 3 + } +} + +Frame { + stickerPack = StickerPack { + packId = <2cc2b48c50aefe53b3974ed91e6b4ea9> + packKey = + } +} \ No newline at end of file diff --git a/test-cases/story-distribution-list.binproto b/test-cases/story-distribution-list.binproto deleted file mode 100644 index e5eb145ca703e292ac46543ebeedfa9ec068b9cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmd<&U=-N+Zu8kchK^kJTndZB10Q7eB(6HV{BlP9&#*;1(_@{CZ}MBl|BJ2CG_=!F zVhb%!EmCmw66Ro(U{qlAV2of)U@Ty)VC-OIViRKFVANs&QA|b*ZbB{`%t8)a0--VC z(`5|3k2OlFa9+FgWrLRjtBM6zoMElehP7hF8fhDI_Ge43znN^?W#3$wDW;ToFp9$? zF;5{lKPTUc!9>W2gGERWXiPM!F+u{NQK%vc8@KKLX&Jx>(ZmYY6oIM)s3{UvL}3$5 zla`PM2b+=#mjDAAkP_hH@U2t`F3B&d6kwEKQecr6lI37mlH?Ky>&<-3_1E2g#k?P) zzcj3^1p1!8nfu)kB+mho4-G}NO`r=bZy=<{!KtLhB{1{-%PsSB-D;Ym-rsA!-Tzif yjEl!NF)t-CC%-5&F|Qb6odT<>kTM6Cl026{Y8N|7U`lawv3iu2loSJFg9QNQsF2A3 diff --git a/test-cases/story-distribution-list.jsonproto b/test-cases/story-distribution-list.jsonproto deleted file mode 100644 index 90b6e1b1..00000000 --- a/test-cases/story-distribution-list.jsonproto +++ /dev/null @@ -1,136 +0,0 @@ -[ - { - "backupTimeMs": "1717075506993", - "version": "1" - }, - { - "account": { - "accountSettings": { - "displayBadgesOnProfile": true, - "hasSeenGroupStoryEducationSheet": true, - "hasSetMyStoriesPrivacy": true, - "hasViewedOnboardingStory": true, - "linkPreviews": true, - "phoneNumberSharingMode": "NOBODY", - "readReceipts": true, - "storyViewReceiptsEnabled": true, - "typingIndicators": true - }, - "givenName": "User A", - "profileKey": "o1dR4GmMYarDp9Nof/lWorlnXUIz2Q85X/5deikxPio=" - } - }, - { - "recipient": { - "id": "1", - "self": {} - } - }, - { - "recipient": { - "id": "2", - "releaseNotes": {} - } - }, - { - "recipient": { - "id": "3", - "contact": { - "aci": "VVxXlxwxS8aBGSQJ1tL0sA==", - "profileGivenName": "Han Solo", - "profileKey": "BSQ4Cl4xfTKwrRZzKGaxbL9rGa/ZYz2KP4NxaRYiYcE=", - "registered": {} - } - } - }, - { - "recipient": { - "id": "4", - "contact": { - "aci": "VVtXlxwxS8aBGSQJ1tL0sA==", - "e164": "15555550001", - "pni": "VVpXlxwxS8aBGSQJ1tL0sA==", - "profileSharing": true, - "registered": {} - } - } - }, - { - "recipient": { - "id": "5", - "contact": { - "aci": "VVhXlxwxS8aBGSQJ1tL0sA==", - "e164": "15555550002", - "pni": "VVlXlxwxS8aBGSQJ1tL0sA==", - "profileSharing": true, - "registered": {} - } - } - }, - { - "recipient": { - "id": "6", - "distributionList": { - "distributionId": "AAAAAAAAAAAAAAAAAAAAAA==", - "distributionList": { - "allowReplies": true, - "memberRecipientIds": [ - "4" - ], - "name": "My Story", - "privacyMode": "ALL_EXCEPT" - } - } - } - }, - { - "recipient": { - "id": "7", - "distributionList": { - "deletionTimestamp": "1715633599374", - "distributionId": "Vo1p4wr9Rz+onvgV+ig7Og==" - } - } - }, - { - "recipient": { - "id": "8", - "distributionList": { - "deletionTimestamp": "1715633599370", - "distributionId": "VVVXlxwxS8aBGSQJ1tL0sA==" - } - } - }, - { - "recipient": { - "id": "9", - "distributionList": { - "distributionId": "me/ptJ9tRnyCWu/eg9uP7Q==", - "distributionList": { - "allowReplies": true, - "memberRecipientIds": [ - "4", - "5" - ], - "name": "Mandalorians", - "privacyMode": "ALL_EXCEPT" - } - } - } - }, - { - "recipient": { - "id": "10", - "distributionList": { - "distributionId": "ZYoHlxwxS8aBGSQJ1tL0sA==", - "distributionList": { - "memberRecipientIds": [ - "4" - ], - "name": "Hutts", - "privacyMode": "ONLY_WITH" - } - } - } - } -] diff --git a/test-cases/thread-merge-chat-update-message.binproto b/test-cases/thread-merge-chat-update-message.binproto deleted file mode 100644 index 88c856098293ea677f9d2cc35b46b67a9dace983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmZSMU=%oTgx!+MoJ%2*Y2xa)hn+k<<}RLPcyj64nP)HMe{DBjejy zcc*-KJ@nRQXEMVwhWMUIy;b7Ea08vav3>rde9L!2eTmlSeK#Grx!?#i) zxFo-*Qh-r{xm>7}gGH#2OTeLQW*n=bgVV|CYfzYe^V!#s rxJ8eD1u#Z2dnD#1u>=G4WiUFib39nOr1700n-tKw0*oMvNq_|aR_0Qb diff --git a/test-cases/unregistered-contact.jsonproto b/test-cases/unregistered-contact.jsonproto deleted file mode 100644 index b0b983e4..00000000 --- a/test-cases/unregistered-contact.jsonproto +++ /dev/null @@ -1,92 +0,0 @@ -[ - { - "version": "1", - "backupTimeMs": "1715636551000" - }, - { - "account": { - "profileKey": "YQKRq+3DQklInaOaMcmlzZnN0m/1hzLiaONX7gB12dg=", - "givenName": "Boba", - "familyName": "Fett", - "avatarUrlPath": "", - "accountSettings": { - "readReceipts": false, - "sealedSenderIndicators": true, - "typingIndicators": false, - "linkPreviews": false, - "notDiscoverableByPhoneNumber": false, - "preferContactAvatars": false, - "universalExpireTimerSeconds": 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", - "releaseNotes": {} - } - }, - { - "recipient": { - "id": "3", - "distributionList": { - "distributionId": "AAAAAAAAAAAAAAAAAAAAAA==", - "distributionList": { - "allowReplies": true, - "memberRecipientIds": [], - "name": "My Story", - "privacyMode": "ALL" - } - } - } - }, - { - "recipient": { - "id": "4", - "contact": { - "aci": "QHaZXgUxQEKp5B5np33zWA==", - "pni": "JvwCorpYSn2wgZ2iOXFXCg==", - "username": "han_solo.44", - "e164": "17735550199", - "blocked": false, - "visibility": "VISIBLE", - "notRegistered": { - "unregisteredTimestamp": 1713157772000 - }, - "profileKey": "nH0NX5+LqtIe85lAy958oyRNH9INMHFn2eb1VF6i4/o=", - "profileSharing": true, - "profileGivenName": "Han", - "profileFamilyName": "Solo", - "hideStory": true - } - } - }, - { - "chat": { - "id": "1", - "recipientId": "1" - } - }, - { - "chat": { - "id": "2", - "recipientId": "4" - } - } -]