UAT/PHASE1.md — 20 test scenarios, 80+ checkboxes Identity, encryption, messaging, TUI, web, groups, aliases, auth, OTP replenishment, session persistence, cross-client UAT/PHASE2.md — 7 scenarios (WASM, receipts, files, multi-device, HW wallet, groups, history) UAT/PHASE3.md — 6 scenarios (DNS discovery, key transparency, federation, mutual TLS, gossip) UAT/PHASE4.md — 10 scenarios (mule identity, pickup, delivery, receipts, dedup, expiry, compression) UAT/PHASE5.md — 6 scenarios (Bluetooth, LoRa, mDNS, Wi-Fi Direct, USB export, fallback chain) UAT/PHASE6.md — 3 scenarios (sealed sender, traffic analysis resistance, onion routing) UAT/PHASE7.md — 8 scenarios (ntfy, DoH, DB encryption, admin CLI, rate limiting, audit, CI, monitoring) Each test has exact commands to run and checkboxes for pass/fail. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
149 lines
3.4 KiB
Markdown
149 lines
3.4 KiB
Markdown
# Phase 5 — User Acceptance Testing (Transport Fallbacks)
|
|
|
|
> Phase 5 is NOT YET IMPLEMENTED. This is a pre-written test plan.
|
|
|
|
## Prerequisites
|
|
|
|
- Phase 4 UAT fully passing
|
|
- Bluetooth-capable devices
|
|
- LoRa hardware (e.g. Heltec ESP32 LoRa, RAK WisBlock)
|
|
- Two devices on same Wi-Fi for Wi-Fi Direct testing
|
|
|
|
---
|
|
|
|
## 1. Bluetooth Mule Transfer
|
|
|
|
**Mule device (phone/laptop) near Server A:**
|
|
|
|
```bash
|
|
cargo run --bin warzone-mule -- pickup --transport bluetooth
|
|
```
|
|
|
|
- [ ] Mule scans for nearby warzone-server via BLE advertisement
|
|
- [ ] Connects via Bluetooth Classic (RFCOMM)
|
|
- [ ] Picks up messages (same protocol as HTTP, different transport)
|
|
- [ ] Transfer speed reasonable (> 100 KB/s)
|
|
|
|
**Mule near Server B:**
|
|
|
|
```bash
|
|
cargo run --bin warzone-mule -- deliver --transport bluetooth
|
|
```
|
|
|
|
- [ ] Delivers messages via Bluetooth
|
|
- [ ] Receipts returned
|
|
|
|
---
|
|
|
|
## 2. LoRa Transport (Emergency)
|
|
|
|
**Setup two LoRa nodes with warzone-mule:**
|
|
|
|
```bash
|
|
cargo run --bin warzone-mule -- lora-beacon --freq 868.0
|
|
```
|
|
|
|
- [ ] Device broadcasts presence beacon (< 50 bytes)
|
|
- [ ] Nearby LoRa node detects beacon
|
|
|
|
**Send short text over LoRa:**
|
|
```bash
|
|
cargo run --bin warzone-mule -- lora-send "SOS need evac" --to <fingerprint>
|
|
```
|
|
|
|
- [ ] Message fits in single LoRa packet (< 250 bytes)
|
|
- [ ] Compact binary format used (not JSON)
|
|
- [ ] Recipient receives and decrypts
|
|
- [ ] Delivery receipt sent back over LoRa
|
|
|
|
**LoRa limitations:**
|
|
- [ ] Messages > 200 chars rejected with warning
|
|
- [ ] Files cannot be sent over LoRa
|
|
- [ ] Latency shown: "Sent via LoRa (estimated 2-5 seconds)"
|
|
|
|
---
|
|
|
|
## 3. mDNS / LAN Discovery
|
|
|
|
**Two devices on same LAN, no internet:**
|
|
|
|
```bash
|
|
cargo run --bin warzone-server -- --mdns
|
|
```
|
|
|
|
- [ ] Server advertises via mDNS: `_warzone._tcp.local`
|
|
- [ ] Client discovers server without typing IP/URL:
|
|
```bash
|
|
cargo run --bin warzone-client -- chat --discover
|
|
```
|
|
- [ ] Shows: "Found warzone server at 192.168.1.42:7700"
|
|
- [ ] Chat works normally over LAN
|
|
|
|
---
|
|
|
|
## 4. Wi-Fi Direct (Nearby Mesh)
|
|
|
|
**Two devices, no router needed:**
|
|
|
|
```bash
|
|
cargo run --bin warzone-client -- chat --wifi-direct
|
|
```
|
|
|
|
- [ ] Devices discover each other via Wi-Fi Direct
|
|
- [ ] Form ad-hoc connection
|
|
- [ ] Messages synced peer-to-peer (no server)
|
|
- [ ] Group sync: all messages replicated to all peers in range
|
|
- [ ] Bandwidth: > 10 MB/s
|
|
|
|
---
|
|
|
|
## 5. USB / Sneakernet Export
|
|
|
|
**Export messages:**
|
|
```bash
|
|
cargo run --bin warzone-client -- export --since 24h --to /mnt/usb/messages.wz
|
|
```
|
|
|
|
- [ ] Messages exported as encrypted file
|
|
- [ ] File is portable (copy to USB drive)
|
|
- [ ] Export size shown: "Exported 142 messages (2.3 MB)"
|
|
|
|
**Import on another machine:**
|
|
```bash
|
|
cargo run --bin warzone-client -- import /mnt/usb/messages.wz
|
|
```
|
|
|
|
- [ ] Messages imported and decrypted
|
|
- [ ] Deduplication: already-seen messages skipped
|
|
- [ ] "Imported 142 messages (38 new)"
|
|
|
|
---
|
|
|
|
## 6. Transport Fallback Priority
|
|
|
|
**Configure fallback chain:**
|
|
```
|
|
warzone-server --transport https,bluetooth,lora
|
|
```
|
|
|
|
- [ ] Server tries HTTPS first
|
|
- [ ] If HTTPS fails → falls back to Bluetooth
|
|
- [ ] If Bluetooth unavailable → falls back to LoRa
|
|
- [ ] Each fallback logged with reason
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
| # | Feature | Result |
|
|
|---|---------|--------|
|
|
| 1 | Bluetooth mule | ☐ |
|
|
| 2 | LoRa transport | ☐ |
|
|
| 3 | mDNS discovery | ☐ |
|
|
| 4 | Wi-Fi Direct | ☐ |
|
|
| 5 | USB export/import | ☐ |
|
|
| 6 | Transport fallback | ☐ |
|
|
|
|
**Tester:** _______________
|
|
**Date:** _______________
|