61 lines
1.7 KiB
Bash
61 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
function test_os_selection {
|
|
echo "Testing OS selection..."
|
|
echo "L" | ./install_obsidian.sh
|
|
echo "M" | ./install_obsidian.sh
|
|
echo "W" | ./install_obsidian.sh
|
|
}
|
|
|
|
function test_dependencies_installation {
|
|
echo "Simulating environment without wget and jq..."
|
|
sudo apt remove -y wget jq
|
|
|
|
echo "Installing dependencies..."
|
|
sudo apt update
|
|
sudo apt install -y wget jq
|
|
|
|
if ! command -v wget &> /dev/null || ! command -v jq &> /dev/null; then
|
|
echo "Failed to install dependencies."
|
|
else
|
|
echo "Dependencies installed successfully."
|
|
fi
|
|
}
|
|
|
|
function test_obsidian_download_failure {
|
|
echo "Simulating download failure..."
|
|
sudo iptables -A OUTPUT -p tcp --dport 443 -j REJECT
|
|
|
|
echo "Downloading Obsidian..."
|
|
wget https://github.com/obsidianmd/obsidian-releases/releases/download/v1.6.3/Obsidian-1.6.3.AppImage -O obsidian.AppImage
|
|
if [ ! -f obsidian.AppImage ]; then
|
|
echo "Download failed as expected."
|
|
else
|
|
echo "Download succeeded unexpectedly."
|
|
fi
|
|
|
|
# Clean up iptables rule
|
|
sudo iptables -D OUTPUT -p tcp --dport 443 -j REJECT
|
|
}
|
|
|
|
# Create an invalid plugins.json file
|
|
echo '{
|
|
"core_plugins": ["plugin1", "plugin2"]
|
|
"community_plugins": ["plugin3", "plugin4"]
|
|
' > invalid_plugins.json
|
|
|
|
function test_invalid_plugins_config {
|
|
echo "Testing with invalid plugins.json..."
|
|
if jq . invalid_plugins.json; then
|
|
echo "Invalid plugins.json parsed unexpectedly."
|
|
else
|
|
echo "Caught error parsing invalid plugins.json as expected."
|
|
fi
|
|
}
|
|
|
|
# Run tests
|
|
test_os_selection
|
|
test_dependencies_installation
|
|
test_obsidian_download_failure
|
|
test_invalid_plugins_config
|