Files
Painobar-helper/TESTING_GUIDE_KILL_PROCESS.md
T
2026-08-11 22:42:01 -04:00

154 lines
5.4 KiB
Markdown

# Testing Guide - Kill Process on Disconnect
## Quick Test Steps
### Test 1: Verify Initial State
1. **Run the application**
2. **Open Settings** (File ? Settings)
3. **Navigate to "Pianobar Config & Auth" tab**
4. **Verify**:
- [ ] "Enable Profile Credentials and Custom Config Generation" checkbox is **unchecked**
- [ ] "Kill process" checkbox is **disabled** (grayed out, cannot be clicked)
- [ ] Config file path field is **disabled**
- [ ] Browse button is **disabled**
- [ ] Username field is **disabled**
- [ ] Password field is **disabled**
### Test 2: Enable Override and Kill Process
1. **Check** "Enable Profile Credentials and Custom Config Generation"
2. **Verify**:
- [ ] "Kill process" checkbox becomes **enabled**
- [ ] All credential fields become **enabled**
3. **Check** "Kill process" checkbox
4. **Click Save**
5. **Re-open Settings**
6. **Verify**:
- [ ] "Enable Profile Credentials..." remains **checked**
- [ ] "Kill process" checkbox remains **checked**
- [ ] Setting persists correctly
### Test 3: Connect and Kill on Disconnect
1. **Ensure a profile with Kill Process enabled is active**
2. **Set Pianobar executable path** if not already set
3. **Click Connect**
4. **Verify**:
- [ ] Pianobar starts (status shows "Connected to Pianobar")
- [ ] PID is displayed in status bar (e.g., "PID: 12345")
5. **Click Disconnect**
6. **Verify**:
- [ ] Status shows "Pianobar process killed (PID: XXXX)"
- [ ] Pianobar process is **terminated** (check Task Manager)
### Test 4: Connect and Detach on Disconnect
1. **Open Settings**
2. **Navigate to "Pianobar Config & Auth" tab**
3. **Verify** "Enable Profile Credentials..." is **checked**
4. **Uncheck** "Kill process" checkbox
5. **Click Save**
6. **Click Connect**
7. **Verify**:
- [ ] Pianobar starts successfully
8. **Click Disconnect**
9. **Verify**:
- [ ] Status shows "Disconnected from Pianobar (process detached)"
- [ ] Pianobar process is **still running** in Task Manager
- [ ] Music continues playing
### Test 5: Disable Override (Gating)
1. **Open Settings**
2. **Navigate to "Pianobar Config & Auth" tab**
3. **Uncheck** "Enable Profile Credentials and Custom Config Generation"
4. **Verify**:
- [ ] "Kill process" checkbox becomes **disabled** (grayed out)
- [ ] All credential fields become **disabled**
- [ ] Cannot check "Kill process"
5. **Try to check "Kill process"** (should not be possible)
6. **Click Save**
7. **Close Settings**
### Test 6: Output Folder Browse Button
1. **Open Settings**
2. **Navigate to "Outputs" tab**
3. **Click** the **Browse** button next to the output folder text box (ID: `output_folder_browse_button`)
4. **Verify**:
- [ ] SaveFileDialog opens with title "Select Text File Output Path"
- [ ] Default filename is "now_playing.txt"
- [ ] Can select a location
5. **Select a location** and click OK
6. **Verify**:
- [ ] Selected path appears in the output folder text box
7. **Click Save**
8. **Verify**:
- [ ] Output path is saved to the profile
## Edge Case Tests
### Edge 1: Switch Profiles with Different Settings
1. **Create two profiles**:
- Profile A: Kill process **enabled**
- Profile B: Kill process **disabled**
2. **Switch to Profile A** and connect
3. **Disconnect** ? Should **kill** the process
4. **Switch to Profile B** and connect
5. **Disconnect** ? Should **detach** (not kill)
### Edge 2: Override Disabled Mid-Session
1. **Have Kill process enabled**
2. **Open Settings** while connected
3. **Uncheck** "Enable Profile Credentials..."
4. **Verify** "Kill process" becomes **disabled**
5. **Click Save**
6. **Disconnect**
7. **Verify** process is **detached** (not killed), since override was disabled
### Edge 3: No Active Profile
1. **Delete all profiles** or ensure no profile is active
2. **Try to connect**
3. **Verify**:
- [ ] Error message: "No active profile selected..."
- [ ] Cannot connect without a profile
## Expected Behavior Summary
| Override Enabled? | Kill Process Checked? | Disconnect Behavior |
|-------------------|----------------------|---------------------|
| ? No | N/A (disabled) | Detach |
| ? Yes | ? No | Detach |
| ? Yes | ? Yes | **Kill by PID** |
## Status Bar Messages
- **Connect starting**: "Starting Pianobar..."
- **Connect success**: "Connected to Pianobar (PID: XXXX)"
- **Connect failed**: "Failed to start Pianobar"
- **Disconnect (kill)**: "Pianobar process killed (PID: XXXX)"
- **Disconnect (detach)**: "Disconnected from Pianobar (process detached)"
## Troubleshooting
### Issue: Kill checkbox is always disabled
**Solution**: Make sure "Enable Profile Credentials and Custom Config Generation" is **checked**
### Issue: Setting doesn't persist
**Solution**: Make sure you clicked **Save** before closing the Settings dialog
### Issue: Process not killed on disconnect
**Checks**:
- Is "Enable Profile Credentials..." checked?
- Is "Kill process" checkbox checked?
- Did you save the profile?
- Is the correct profile active?
### Issue: Cannot connect
**Checks**:
- Is a profile selected and active?
- Is the Pianobar executable path set correctly?
- Does the Pianobar.exe file exist at that path?
## Files to Monitor
- `profiles.json` in `%APPDATA%\PianoBarHelper\`
- Check that `"KillProcessOnDisconnect": true` is saved for profiles where it's enabled
- Task Manager ? Details
- Watch for `pianobar.exe` process appearing/disappearing during connect/disconnect