diff --git a/docs/manual-checks.md b/docs/manual-checks.md index 877ddb2..d62f1e4 100644 --- a/docs/manual-checks.md +++ b/docs/manual-checks.md @@ -427,6 +427,82 @@ surface. Use the ← button, or drag the file to the local pane first. --- +## Phase 2b — The path box, and what can be done to a remote row + +The rules are automated — `SftpPath.Resolve` in `RemotePathTests`, the three questions and the automatic +refresh in `ShellFlowTests`, both new shapes measured in `ScreenLayoutTests`. What is left here is what +those cannot reach: a real server's own refusals, and a soft keyboard. + +Connect the SFTP page to a host first. + +### 2.20 Typing a path + +Click into the path in the remote pane's header, type `/var/log`, press Enter. Then type `..`, Enter. Then +`~`, Enter. + +**Pass:** each one lists, the breadcrumb underneath follows, and the box ends up showing the absolute path +that was actually reached rather than what was typed. + +### 2.21 Escape puts the path back + +Type nonsense into the box without pressing Enter, then press Escape. + +**Pass:** the box goes back to the directory the pane is showing. + +### 2.22 A path the server refuses + +Type a path that does not exist, and one that exists but is not readable by this account. + +**Pass:** the pane stays where it was, the status line at the foot of the screen carries the server's own +message, and the box still holds what was typed so it can be corrected. + +### 2.23 Rename + +Select a file, press the rename button, change the name, press RENAME. + +**Pass:** the listing comes back with the new name and the row still selected. Then try a name that another +file in the directory already has: **the server refuses it and says so, and nothing is overwritten** — this +is the one that matters, because the whole queue's "nothing lands at its final name until it is complete" +promise rests on the same server behaviour. + +### 2.24 Move + +Select a file, press the move button, type a directory — try an absolute one and a relative one — and press +MOVE. + +**Pass:** the file leaves the listing and is in the directory that was typed. + +Then try one across a filesystem boundary on the same host — `/tmp` to a path on a separate mount is the +usual pair. **Pass:** the server refuses with its own message about a cross-device link. This cannot be +faked in a test and is the refusal somebody will eventually meet. + +### 2.25 The listing refreshes itself after an upload + +Upload a file into the directory showing. + +**Pass:** it appears in the remote listing without REFRESH being pressed. Then upload into a *different* +directory: nothing on screen changes. Then download a file into the folder the local pane is showing, and +that one appears on the left the same way. + +### 2.26 A transfer that lands while a question is open + +Start an upload into the directory showing, and while it runs select a row and press DELETE so the question +is up when the transfer finishes. + +**Pass:** the listing does not move while the question is on screen, and refreshes the moment the question +is answered or cancelled. + +**Failure means:** the row the question was asked about is not necessarily the row that gets acted on. + +### 2.27 The phone's GO button + +On Android, connect on the Files screen, type a path into the box above the breadcrumb and press GO. + +**Pass:** it lists. The keyboard's own return key may or may not commit — that is the IME's choice, which is +why GO exists — but GO always must. + +--- + ## Phase 3 — Host groups and snippets Two synced item kinds, two ways of drawing a group — the desktop's grid of cards, one level at a time, and diff --git a/src/DodoSSH.Client.Android/Views/FilesScreen.axaml b/src/DodoSSH.Client.Android/Views/FilesScreen.axaml index 5651ed2..3873086 100644 --- a/src/DodoSSH.Client.Android/Views/FilesScreen.axaml +++ b/src/DodoSSH.Client.Android/Views/FilesScreen.axaml @@ -48,7 +48,7 @@ the refusal has no continue button here either. --> - + @@ -174,8 +174,31 @@ + + + + + + + + + - @@ -402,9 +417,53 @@ + + + + + + + + + + + + - @@ -435,7 +494,65 @@ - + + + + + + + + + + + + + +