aboutsummaryrefslogtreecommitdiffstats
path: root/ui/compose/src/test
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-04 18:51:35 +0100
committerDanilo M. <danix@danix.xyz>2026-11-04 18:51:35 +0100
commitba2a60a14717fd7c82cd2c4b1778673d1bb6388f (patch)
tree45fc389cbafedcfef0f88ae8b7e789af39690c84 /ui/compose/src/test
parent0ad0b1ca6a7f7fa814a92dd6eaf9da88948ee377 (diff)
parent136ee43d6080da288afae8ec133727962ea60640 (diff)
downloadHardenedPass-ba2a60a14717fd7c82cd2c4b1778673d1bb6388f.tar.gz
HardenedPass-ba2a60a14717fd7c82cd2c4b1778673d1bb6388f.zip
Merge branch 'compose': Compose UI overhaul
Every screen moves from XML layouts, Views and Fragments to Jetpack Compose with Material 3, in one MainActivity with a NavHost: the list with breadcrumbs, search, pull to sync and multi-select; the entry view with OTP countdown; the editor with generator sheet and folder picker; setup (welcome, git server and clone, SSH key, PGP keys); settings, git config, commit log and proxy; and the autofill picker, publisher warning and decryption prompts. LaunchActivity stays the only exported activity. Fixes found on the way reach master with it, among them symlink-safe deletes, the proxy user name, screen lock gated switches, the Android 14 app lock and screen lock prompts, and the autofill passphrase cache rule. The View-era dependencies and view binding are gone; Material Components (Views) stays for the git dialogs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'ui/compose/src/test')
-rw-r--r--ui/compose/src/test/kotlin/app/passwordstore/ui/compose/BreadcrumbsTest.kt33
1 files changed, 33 insertions, 0 deletions
diff --git a/ui/compose/src/test/kotlin/app/passwordstore/ui/compose/BreadcrumbsTest.kt b/ui/compose/src/test/kotlin/app/passwordstore/ui/compose/BreadcrumbsTest.kt
new file mode 100644
index 00000000..2eb4c3fc
--- /dev/null
+++ b/ui/compose/src/test/kotlin/app/passwordstore/ui/compose/BreadcrumbsTest.kt
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2026 Danilo M. <danix@danix.xyz>
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+package app.passwordstore.ui.compose
+
+import kotlin.test.Test
+import kotlin.test.assertEquals
+
+class BreadcrumbsTest {
+
+ @Test
+ fun rootOnly() {
+ assertEquals(listOf(Crumb("", "")), crumbsFor(""))
+ }
+
+ @Test
+ fun nestedPath() {
+ assertEquals(
+ listOf(Crumb("", ""), Crumb("work", "work"), Crumb("servers", "work/servers")),
+ crumbsFor("work/servers"),
+ )
+ }
+
+ @Test
+ fun ignoresStraySlashes() {
+ assertEquals(
+ listOf(Crumb("", ""), Crumb("work", "work"), Crumb("servers", "work/servers")),
+ crumbsFor("/work//servers/"),
+ )
+ }
+}