From feab56994d874df21f68eeddfca8d8a7ecbf75d2 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 6 May 2020 01:58:05 +0530 Subject: PasswordEntry: add more potential fields for username (#764) --- .../java/com/zeapo/pwdstore/PasswordEntryTest.kt | 7 +++++++ app/src/main/java/com/zeapo/pwdstore/PasswordEntry.kt | 15 +++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt b/app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt index 2f7028a4..cdc822e5 100644 --- a/app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt +++ b/app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt @@ -34,6 +34,10 @@ class PasswordEntryTest { } @Test fun testGetUsername() { + for (field in PasswordEntry.USERNAME_FIELDS) { + assertEquals("username", PasswordEntry("\n$field username").username) + assertEquals("username", PasswordEntry("\n${field.toUpperCase()} username").username) + } assertEquals( "username", PasswordEntry("secret\nextra\nlogin: username\ncontent\n").username) @@ -42,6 +46,9 @@ class PasswordEntryTest { PasswordEntry("\nextra\nusername: username\ncontent\n").username) assertEquals( "username", PasswordEntry("\nUSERNaMe: username\ncontent\n").username) + assertEquals("username", PasswordEntry("\nlogin: username").username) + assertEquals("foo@example.com", PasswordEntry("\nemail: foo@example.com").username) + assertEquals("username", PasswordEntry("\nidentity: username\nlogin: another_username").username) assertEquals("username", PasswordEntry("\nLOGiN:username").username) assertNull(PasswordEntry("secret\nextra\ncontent\n").username) } diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordEntry.kt b/app/src/main/java/com/zeapo/pwdstore/PasswordEntry.kt index c75fb02d..002c381d 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordEntry.kt +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordEntry.kt @@ -5,6 +5,8 @@ package com.zeapo.pwdstore import android.net.Uri +import androidx.annotation.VisibleForTesting +import androidx.annotation.VisibleForTesting.PRIVATE import java.io.ByteArrayOutputStream import java.io.UnsupportedEncodingException @@ -162,7 +164,16 @@ class PasswordEntry(private val content: String) { } companion object { - - private val USERNAME_FIELDS = arrayOf("login:", "username:") + @VisibleForTesting(otherwise = PRIVATE) + val USERNAME_FIELDS = arrayOf( + "login:", + "username:", + "account:", + "email:", + "name:", + "handle:", + "id:", + "identity:" + ) } } -- cgit v1.2.3