From 5195aaa8dea7bfae822a0aa617c7166e841fb7bd Mon Sep 17 00:00:00 2001
From: Neeraj Gupta <254676+ua741@users.noreply.github.com>
Date: Mon, 13 May 2024 13:51:23 +0530
Subject: [PATCH] [auth] Add code display test

---
 auth/test/models/code_test.dart            | 22 ++++++++++++
 mobile/lib/generated/intl/messages_pt.dart | 39 ++++++++++++++++++----
 mobile/lib/generated/intl/messages_zh.dart | 18 ++++++++++
 3 files changed, 72 insertions(+), 7 deletions(-)

diff --git a/auth/test/models/code_test.dart b/auth/test/models/code_test.dart
index b2d2c28d6..f51364118 100644
--- a/auth/test/models/code_test.dart
+++ b/auth/test/models/code_test.dart
@@ -1,4 +1,7 @@
+import 'dart:convert';
+
 import 'package:ente_auth/models/code.dart';
+import 'package:ente_auth/models/code_display.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
@@ -29,6 +32,25 @@ void main() {
     expect(code.secret, "ASKZNWOU6SVYAMVS");
     expect(code.counter, 15);
   });
+
+  test("validateDisplay", () {
+    Code code = Code.fromOTPAuthUrl(
+      "otpauth://hotp/testdata@ente.io?secret=ASKZNWOU6SVYAMVS&issuer=GitHub&counter=15",
+    );
+    expect(code.issuer, "GitHub", reason: "issuerMismatch");
+    expect(code.account, "testdata@ente.io", reason: "accountMismatch");
+    expect(code.secret, "ASKZNWOU6SVYAMVS");
+    expect(code.counter, 15);
+    code = code.copyWith(
+      display: CodeDisplay(pinned: true, tags: ["tag1", "com,ma", ';;%\$']),
+    );
+    final dataToStore = code.toOTPAuthUrlFormat();
+    final restoredCode = Code.fromOTPAuthUrl(jsonDecode(dataToStore));
+    expect(restoredCode.display.pinned, true);
+    expect(restoredCode.display.tags, ["tag1", "com,ma", ';;%\$']);
+    final secondDataToStore = restoredCode.toOTPAuthUrlFormat();
+    expect(dataToStore, secondDataToStore);
+  });
 //
 
   test("parseWithFunnyAccountName", () {
diff --git a/mobile/lib/generated/intl/messages_pt.dart b/mobile/lib/generated/intl/messages_pt.dart
index 50552dc66..cc410241f 100644
--- a/mobile/lib/generated/intl/messages_pt.dart
+++ b/mobile/lib/generated/intl/messages_pt.dart
@@ -280,7 +280,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "allowAddingPhotos":
             MessageLookupByLibrary.simpleMessage("Permitir adicionar fotos"),
         "allowDownloads":
-            MessageLookupByLibrary.simpleMessage("Permitir transferências"),
+            MessageLookupByLibrary.simpleMessage("Permitir downloads"),
         "allowPeopleToAddPhotos": MessageLookupByLibrary.simpleMessage(
             "Permitir que pessoas adicionem fotos"),
         "androidBiometricHint":
@@ -311,7 +311,7 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("Aplicar código"),
         "appstoreSubscription":
             MessageLookupByLibrary.simpleMessage("Assinatura da AppStore"),
-        "archive": MessageLookupByLibrary.simpleMessage("Arquivado"),
+        "archive": MessageLookupByLibrary.simpleMessage("Arquivar"),
         "archiveAlbum": MessageLookupByLibrary.simpleMessage("Arquivar álbum"),
         "archiving": MessageLookupByLibrary.simpleMessage("Arquivando..."),
         "areYouSureThatYouWantToLeaveTheFamily":
@@ -365,6 +365,12 @@ class MessageLookup extends MessageLookupByLibrary {
                 "Falha na autenticação. Por favor, tente novamente"),
         "authenticationSuccessful":
             MessageLookupByLibrary.simpleMessage("Autenticação bem-sucedida!"),
+        "autoCastDialogBody": MessageLookupByLibrary.simpleMessage(
+            "Você verá dispositivos disponíveis para transmitir aqui."),
+        "autoCastiOSPermission": MessageLookupByLibrary.simpleMessage(
+            "Certifique-se de que as permissões de Rede local estão ativadas para o aplicativo de Fotos Ente, em Configurações."),
+        "autoPair":
+            MessageLookupByLibrary.simpleMessage("Pareamento automático"),
         "available": MessageLookupByLibrary.simpleMessage("Disponível"),
         "backedUpFolders":
             MessageLookupByLibrary.simpleMessage("Backup de pastas concluído"),
@@ -397,6 +403,10 @@ class MessageLookup extends MessageLookupByLibrary {
         "cannotAddMorePhotosAfterBecomingViewer": m9,
         "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage(
             "Não é possível excluir arquivos compartilhados"),
+        "castIPMismatchBody": MessageLookupByLibrary.simpleMessage(
+            "Certifique-se de estar na mesma rede que a TV."),
+        "castIPMismatchTitle":
+            MessageLookupByLibrary.simpleMessage("Falha ao transmitir álbum"),
         "castInstruction": MessageLookupByLibrary.simpleMessage(
             "Visite cast.ente.io no dispositivo que você deseja parear.\n\ndigite o código abaixo para reproduzir o álbum em sua TV."),
         "centerPoint": MessageLookupByLibrary.simpleMessage("Ponto central"),
@@ -470,6 +480,8 @@ class MessageLookup extends MessageLookupByLibrary {
             "Confirme a chave de recuperação"),
         "confirmYourRecoveryKey": MessageLookupByLibrary.simpleMessage(
             "Confirme sua chave de recuperação"),
+        "connectToDevice":
+            MessageLookupByLibrary.simpleMessage("Conectar ao dispositivo"),
         "contactFamilyAdmin": m12,
         "contactSupport":
             MessageLookupByLibrary.simpleMessage("Contate o suporte"),
@@ -551,7 +563,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "deleteFromDevice":
             MessageLookupByLibrary.simpleMessage("Excluir do dispositivo"),
         "deleteFromEnte":
-            MessageLookupByLibrary.simpleMessage("Excluir do ente"),
+            MessageLookupByLibrary.simpleMessage("Excluir do Ente"),
         "deleteItemCount": m14,
         "deleteLocation": MessageLookupByLibrary.simpleMessage("Excluir Local"),
         "deletePhotos": MessageLookupByLibrary.simpleMessage("Excluir fotos"),
@@ -667,7 +679,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "enterCode": MessageLookupByLibrary.simpleMessage("Coloque o código"),
         "enterCodeDescription": MessageLookupByLibrary.simpleMessage(
             "Digite o código fornecido pelo seu amigo para reivindicar o armazenamento gratuito para vocês dois"),
-        "enterEmail": MessageLookupByLibrary.simpleMessage("Digite o email"),
+        "enterEmail": MessageLookupByLibrary.simpleMessage("Insira o e-mail"),
         "enterFileName":
             MessageLookupByLibrary.simpleMessage("Digite o nome do arquivo"),
         "enterNewPasswordToEncrypt": MessageLookupByLibrary.simpleMessage(
@@ -738,6 +750,8 @@ class MessageLookup extends MessageLookupByLibrary {
         "filesBackedUpInAlbum": m23,
         "filesDeleted":
             MessageLookupByLibrary.simpleMessage("Arquivos excluídos"),
+        "filesSavedToGallery":
+            MessageLookupByLibrary.simpleMessage("Arquivos salvos na galeria"),
         "flip": MessageLookupByLibrary.simpleMessage("Inverter"),
         "forYourMemories":
             MessageLookupByLibrary.simpleMessage("para suas memórias"),
@@ -821,7 +835,7 @@ class MessageLookup extends MessageLookupByLibrary {
             "A chave de recuperação que você digitou não é válida. Certifique-se de que contém 24 palavras e verifique a ortografia de cada uma.\n\nSe você inseriu um código de recuperação mais antigo, verifique se ele tem 64 caracteres e verifique cada um deles."),
         "invite": MessageLookupByLibrary.simpleMessage("Convidar"),
         "inviteToEnte":
-            MessageLookupByLibrary.simpleMessage("Convidar para o ente"),
+            MessageLookupByLibrary.simpleMessage("Convidar para o Ente"),
         "inviteYourFriends":
             MessageLookupByLibrary.simpleMessage("Convide seus amigos"),
         "inviteYourFriendsToEnte":
@@ -929,6 +943,8 @@ class MessageLookup extends MessageLookupByLibrary {
         "manageParticipants": MessageLookupByLibrary.simpleMessage("Gerenciar"),
         "manageSubscription":
             MessageLookupByLibrary.simpleMessage("Gerenciar assinatura"),
+        "manualPairDesc": MessageLookupByLibrary.simpleMessage(
+            "Parear com o PIN funciona para qualquer dispositivo de tela grande onde você deseja reproduzir seu álbum."),
         "map": MessageLookupByLibrary.simpleMessage("Mapa"),
         "maps": MessageLookupByLibrary.simpleMessage("Mapas"),
         "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"),
@@ -964,6 +980,8 @@ class MessageLookup extends MessageLookupByLibrary {
         "no": MessageLookupByLibrary.simpleMessage("Não"),
         "noAlbumsSharedByYouYet": MessageLookupByLibrary.simpleMessage(
             "Nenhum álbum compartilhado por você ainda"),
+        "noDeviceFound": MessageLookupByLibrary.simpleMessage(
+            "Nenhum dispositivo encontrado"),
         "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Nenhum"),
         "noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage(
             "Você não tem nenhum arquivo neste dispositivo que pode ser excluído"),
@@ -1012,6 +1030,9 @@ class MessageLookup extends MessageLookupByLibrary {
         "orPickAnExistingOne":
             MessageLookupByLibrary.simpleMessage("Ou escolha um existente"),
         "pair": MessageLookupByLibrary.simpleMessage("Parear"),
+        "pairWithPin": MessageLookupByLibrary.simpleMessage("Parear com PIN"),
+        "pairingComplete":
+            MessageLookupByLibrary.simpleMessage("Pareamento concluído"),
         "passkey": MessageLookupByLibrary.simpleMessage("Chave de acesso"),
         "passkeyAuthTitle": MessageLookupByLibrary.simpleMessage(
             "Autenticação via Chave de acesso"),
@@ -1380,6 +1401,10 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("✨ Bem-sucedido"),
         "startBackup": MessageLookupByLibrary.simpleMessage("Iniciar backup"),
         "status": MessageLookupByLibrary.simpleMessage("Estado"),
+        "stopCastingBody": MessageLookupByLibrary.simpleMessage(
+            "Você quer parar a transmissão?"),
+        "stopCastingTitle":
+            MessageLookupByLibrary.simpleMessage("Parar transmissão"),
         "storage": MessageLookupByLibrary.simpleMessage("Armazenamento"),
         "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("Família"),
         "storageBreakupYou": MessageLookupByLibrary.simpleMessage("Você"),
@@ -1425,7 +1450,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "thankYouForSubscribing":
             MessageLookupByLibrary.simpleMessage("Obrigado por assinar!"),
         "theDownloadCouldNotBeCompleted": MessageLookupByLibrary.simpleMessage(
-            "Não foi possível concluir a transferência"),
+            "Não foi possível concluir o download"),
         "theRecoveryKeyYouEnteredIsIncorrect":
             MessageLookupByLibrary.simpleMessage(
                 "A chave de recuperação inserida está incorreta"),
@@ -1525,7 +1550,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "verificationId":
             MessageLookupByLibrary.simpleMessage("ID de Verificação"),
         "verify": MessageLookupByLibrary.simpleMessage("Verificar"),
-        "verifyEmail": MessageLookupByLibrary.simpleMessage("Verificar email"),
+        "verifyEmail": MessageLookupByLibrary.simpleMessage("Verificar e-mail"),
         "verifyEmailID": m65,
         "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verificar"),
         "verifyPasskey":
diff --git a/mobile/lib/generated/intl/messages_zh.dart b/mobile/lib/generated/intl/messages_zh.dart
index 7be447f89..0d507c2e1 100644
--- a/mobile/lib/generated/intl/messages_zh.dart
+++ b/mobile/lib/generated/intl/messages_zh.dart
@@ -320,6 +320,11 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("身份验证失败,请重试"),
         "authenticationSuccessful":
             MessageLookupByLibrary.simpleMessage("验证成功"),
+        "autoCastDialogBody":
+            MessageLookupByLibrary.simpleMessage("您将在此处看到可用的 Cast 设备。"),
+        "autoCastiOSPermission": MessageLookupByLibrary.simpleMessage(
+            "请确保已在“设置”中为 Ente Photos 应用打开本地网络权限。"),
+        "autoPair": MessageLookupByLibrary.simpleMessage("自动配对"),
         "available": MessageLookupByLibrary.simpleMessage("可用"),
         "backedUpFolders": MessageLookupByLibrary.simpleMessage("已备份的文件夹"),
         "backup": MessageLookupByLibrary.simpleMessage("备份"),
@@ -344,6 +349,9 @@ class MessageLookup extends MessageLookupByLibrary {
         "cannotAddMorePhotosAfterBecomingViewer": m9,
         "cannotDeleteSharedFiles":
             MessageLookupByLibrary.simpleMessage("无法删除共享文件"),
+        "castIPMismatchBody":
+            MessageLookupByLibrary.simpleMessage("请确保您的设备与电视处于同一网络。"),
+        "castIPMismatchTitle": MessageLookupByLibrary.simpleMessage("投放相册失败"),
         "castInstruction": MessageLookupByLibrary.simpleMessage(
             "在您要配对的设备上访问 cast.ente.io。\n输入下面的代码即可在电视上播放相册。"),
         "centerPoint": MessageLookupByLibrary.simpleMessage("中心点"),
@@ -400,6 +408,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "confirmRecoveryKey": MessageLookupByLibrary.simpleMessage("确认恢复密钥"),
         "confirmYourRecoveryKey":
             MessageLookupByLibrary.simpleMessage("确认您的恢复密钥"),
+        "connectToDevice": MessageLookupByLibrary.simpleMessage("连接到设备"),
         "contactFamilyAdmin": m12,
         "contactSupport": MessageLookupByLibrary.simpleMessage("联系支持"),
         "contactToManageSubscription": m13,
@@ -610,6 +619,8 @@ class MessageLookup extends MessageLookupByLibrary {
         "filesBackedUpFromDevice": m22,
         "filesBackedUpInAlbum": m23,
         "filesDeleted": MessageLookupByLibrary.simpleMessage("文件已删除"),
+        "filesSavedToGallery":
+            MessageLookupByLibrary.simpleMessage("多个文件已保存到相册"),
         "flip": MessageLookupByLibrary.simpleMessage("上下翻转"),
         "forYourMemories": MessageLookupByLibrary.simpleMessage("为您的回忆"),
         "forgotPassword": MessageLookupByLibrary.simpleMessage("忘记密码"),
@@ -765,6 +776,8 @@ class MessageLookup extends MessageLookupByLibrary {
         "manageLink": MessageLookupByLibrary.simpleMessage("管理链接"),
         "manageParticipants": MessageLookupByLibrary.simpleMessage("管理"),
         "manageSubscription": MessageLookupByLibrary.simpleMessage("管理订阅"),
+        "manualPairDesc": MessageLookupByLibrary.simpleMessage(
+            "用 PIN 配对适用于任何大屏幕设备,您可以在这些设备上播放您的相册。"),
         "map": MessageLookupByLibrary.simpleMessage("地图"),
         "maps": MessageLookupByLibrary.simpleMessage("地图"),
         "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"),
@@ -797,6 +810,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "no": MessageLookupByLibrary.simpleMessage("否"),
         "noAlbumsSharedByYouYet":
             MessageLookupByLibrary.simpleMessage("您尚未共享任何相册"),
+        "noDeviceFound": MessageLookupByLibrary.simpleMessage("未发现设备"),
         "noDeviceLimit": MessageLookupByLibrary.simpleMessage("无"),
         "noDeviceThatCanBeDeleted":
             MessageLookupByLibrary.simpleMessage("您在此设备上没有可被删除的文件"),
@@ -837,6 +851,8 @@ class MessageLookup extends MessageLookupByLibrary {
         "orPickAnExistingOne":
             MessageLookupByLibrary.simpleMessage("或者选择一个现有的"),
         "pair": MessageLookupByLibrary.simpleMessage("配对"),
+        "pairWithPin": MessageLookupByLibrary.simpleMessage("用 PIN 配对"),
+        "pairingComplete": MessageLookupByLibrary.simpleMessage("配对完成"),
         "passkey": MessageLookupByLibrary.simpleMessage("通行密钥"),
         "passkeyAuthTitle": MessageLookupByLibrary.simpleMessage("通行密钥认证"),
         "password": MessageLookupByLibrary.simpleMessage("密码"),
@@ -1115,6 +1131,8 @@ class MessageLookup extends MessageLookupByLibrary {
         "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ 成功"),
         "startBackup": MessageLookupByLibrary.simpleMessage("开始备份"),
         "status": MessageLookupByLibrary.simpleMessage("状态"),
+        "stopCastingBody": MessageLookupByLibrary.simpleMessage("您想停止投放吗?"),
+        "stopCastingTitle": MessageLookupByLibrary.simpleMessage("停止投放"),
         "storage": MessageLookupByLibrary.simpleMessage("存储空间"),
         "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("家庭"),
         "storageBreakupYou": MessageLookupByLibrary.simpleMessage("您"),