summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cucumber/README-sikuli-cucumber (renamed from features/README-sikuli-cucumber)0
-rwxr-xr-xcucumber/bin/run_test_suite (renamed from bin/lvc/run_test_suite)0
-rw-r--r--cucumber/features/config/defaults.yml (renamed from features/config/defaults.yml)0
-rw-r--r--cucumber/features/domains/default.xml (renamed from features/domains/default.xml)0
-rw-r--r--cucumber/features/domains/default_net.xml (renamed from features/domains/default_net.xml)0
-rw-r--r--cucumber/features/domains/disk.xml (renamed from features/domains/disk.xml)0
-rw-r--r--cucumber/features/domains/fs_share.xml (renamed from features/domains/fs_share.xml)0
-rw-r--r--cucumber/features/domains/storage_pool.xml (renamed from features/domains/storage_pool.xml)0
-rw-r--r--cucumber/features/domains/volume.xml (renamed from features/domains/volume.xml)0
-rw-r--r--cucumber/features/images/DebianInstallerCountrySelection.png (renamed from features/images/DebianInstallerCountrySelection.png)bin5303 -> 5303 bytes
-rw-r--r--cucumber/features/images/DebianInstallerDomainPrompt.png (renamed from features/images/DebianInstallerDomainPrompt.png)bin2225 -> 2225 bytes
-rw-r--r--cucumber/features/images/DebianInstallerHostnamePrompt.png (renamed from features/images/DebianInstallerHostnamePrompt.png)bin5643 -> 5643 bytes
-rw-r--r--cucumber/features/images/DebianInstallerHttpProxy.png (renamed from features/images/DebianInstallerHttpProxy.png)bin485 -> 485 bytes
-rw-r--r--cucumber/features/images/DebianInstallerInstallingBaseSystem.png (renamed from features/images/DebianInstallerInstallingBaseSystem.png)bin3554 -> 3554 bytes
-rw-r--r--cucumber/features/images/DebianInstallerMirrorCountry.png (renamed from features/images/DebianInstallerMirrorCountry.png)bin3769 -> 3769 bytes
-rw-r--r--cucumber/features/images/DebianInstallerNameOfUser.png (renamed from features/images/DebianInstallerNameOfUser.png)bin3792 -> 3792 bytes
-rw-r--r--cucumber/features/images/DebianInstallerNoDiskFound.png (renamed from features/images/DebianInstallerNoDiskFound.png)bin4005 -> 4005 bytes
-rw-r--r--cucumber/features/images/DebianInstallerPartitioningMethod.png (renamed from features/images/DebianInstallerPartitioningMethod.png)bin13953 -> 13953 bytes
-rw-r--r--cucumber/features/images/DebianInstallerPartitioningScheme.png (renamed from features/images/DebianInstallerPartitioningScheme.png)bin2879 -> 2879 bytes
-rw-r--r--cucumber/features/images/DebianInstallerRootPassword.png (renamed from features/images/DebianInstallerRootPassword.png)bin3226 -> 3226 bytes
-rw-r--r--cucumber/features/images/DebianInstallerSelectDiskToPartition.png (renamed from features/images/DebianInstallerSelectDiskToPartition.png)bin5403 -> 5403 bytes
-rw-r--r--cucumber/features/images/DebianInstallerSelectLangEnglish.png (renamed from features/images/DebianInstallerSelectLangEnglish.png)bin7229 -> 7229 bytes
-rw-r--r--cucumber/features/images/DebianInstallerSelectLangEnglishUK.png (renamed from features/images/DebianInstallerSelectLangEnglishUK.png)bin4853 -> 4853 bytes
-rw-r--r--cucumber/features/images/DebianInstallerUserPassword.png (renamed from features/images/DebianInstallerUserPassword.png)bin4892 -> 4892 bytes
-rw-r--r--cucumber/features/images/DebianLive7BootSplash.png (renamed from features/images/DebianLive7BootSplash.png)bin13399 -> 13399 bytes
-rw-r--r--cucumber/features/images/DebianLive7BootSplashTabMsg.png (renamed from features/images/DebianLive7BootSplashTabMsg.png)bin4260 -> 4260 bytes
-rw-r--r--cucumber/features/images/DebianLive7Greeter.png (renamed from features/images/DebianLive7Greeter.png)bin3166 -> 3166 bytes
-rw-r--r--cucumber/features/images/DebianLiveBootSplash.png (renamed from features/images/DebianLiveBootSplash.png)bin1569 -> 1569 bytes
-rw-r--r--cucumber/features/images/DebianLiveBootSplashTabMsg.png (renamed from features/images/DebianLiveBootSplashTabMsg.png)bin790 -> 790 bytes
-rw-r--r--cucumber/features/images/DebianLoginPromptVT.png (renamed from features/images/DebianLoginPromptVT.png)bin7466 -> 7466 bytes
-rw-r--r--cucumber/features/images/d-i8_bootsplash.png (renamed from features/images/d-i8_bootsplash.png)bin9930 -> 9930 bytes
-rw-r--r--cucumber/features/images/d-i_ArchiveMirror.png (renamed from features/images/d-i_ArchiveMirror.png)bin2908 -> 2908 bytes
-rw-r--r--cucumber/features/images/d-i_ChooseSoftware.png (renamed from features/images/d-i_ChooseSoftware.png)bin4204 -> 4204 bytes
-rw-r--r--cucumber/features/images/d-i_DesktopTask_No.png (renamed from features/images/d-i_DesktopTask_No.png)bin7161 -> 7161 bytes
-rw-r--r--cucumber/features/images/d-i_DesktopTask_Yes.png (renamed from features/images/d-i_DesktopTask_Yes.png)bin4152 -> 4152 bytes
-rw-r--r--cucumber/features/images/d-i_F12BootMenu.png (renamed from features/images/d-i_F12BootMenu.png)bin482 -> 482 bytes
-rw-r--r--cucumber/features/images/d-i_FinishPartitioning.png (renamed from features/images/d-i_FinishPartitioning.png)bin8734 -> 8734 bytes
-rw-r--r--cucumber/features/images/d-i_GRUBEnterDev.png (renamed from features/images/d-i_GRUBEnterDev.png)bin2490 -> 2490 bytes
-rw-r--r--cucumber/features/images/d-i_GRUB_Debian.png (renamed from features/images/d-i_GRUB_Debian.png)bin387 -> 387 bytes
-rw-r--r--cucumber/features/images/d-i_GRUBdev.png (renamed from features/images/d-i_GRUBdev.png)bin1765 -> 1765 bytes
-rw-r--r--cucumber/features/images/d-i_HttpProxy.png (renamed from features/images/d-i_HttpProxy.png)bin5324 -> 5324 bytes
-rw-r--r--cucumber/features/images/d-i_InstallComplete.png (renamed from features/images/d-i_InstallComplete.png)bin2740 -> 2740 bytes
-rw-r--r--cucumber/features/images/d-i_InstallGRUB.png (renamed from features/images/d-i_InstallGRUB.png)bin6367 -> 6367 bytes
-rw-r--r--cucumber/features/images/d-i_No.png (renamed from features/images/d-i_No.png)bin995 -> 995 bytes
-rw-r--r--cucumber/features/images/d-i_ScanCD.png (renamed from features/images/d-i_ScanCD.png)bin3216 -> 3216 bytes
-rw-r--r--cucumber/features/images/d-i_SelectBootDev.png (renamed from features/images/d-i_SelectBootDev.png)bin559 -> 559 bytes
-rw-r--r--cucumber/features/images/d-i_UseNetMirror.png (renamed from features/images/d-i_UseNetMirror.png)bin2975 -> 2975 bytes
-rw-r--r--cucumber/features/images/d-i_Yes.png (renamed from features/images/d-i_Yes.png)bin1163 -> 1163 bytes
-rw-r--r--cucumber/features/images/d-i_popcon.png (renamed from features/images/d-i_popcon.png)bin3894 -> 3894 bytes
-rw-r--r--cucumber/features/install.feature (renamed from features/DebianLive/apt.feature)0
-rw-r--r--cucumber/features/misc_files/sample.pdf (renamed from features/misc_files/sample.pdf)bin22347 -> 22347 bytes
-rw-r--r--cucumber/features/misc_files/sample.tex (renamed from features/misc_files/sample.tex)0
-rwxr-xr-xcucumber/features/scripts/otr-bot.py (renamed from features/scripts/otr-bot.py)0
-rwxr-xr-xcucumber/features/scripts/vm-execute (renamed from features/scripts/vm-execute)0
-rw-r--r--cucumber/features/step_definitions/apt.rb (renamed from features/step_definitions/apt.rb)0
-rw-r--r--cucumber/features/step_definitions/browser.rb (renamed from features/step_definitions/browser.rb)0
-rw-r--r--cucumber/features/step_definitions/build.rb (renamed from features/step_definitions/build.rb)0
-rw-r--r--cucumber/features/step_definitions/checks.rb (renamed from features/step_definitions/checks.rb)0
-rw-r--r--cucumber/features/step_definitions/common_steps.rb (renamed from features/step_definitions/common_steps.rb)0
-rw-r--r--cucumber/features/step_definitions/dhcp.rb (renamed from features/step_definitions/dhcp.rb)0
-rw-r--r--cucumber/features/step_definitions/electrum.rb (renamed from features/step_definitions/electrum.rb)0
-rw-r--r--cucumber/features/step_definitions/encryption.rb (renamed from features/step_definitions/encryption.rb)0
-rw-r--r--cucumber/features/step_definitions/evince.rb (renamed from features/step_definitions/evince.rb)0
-rw-r--r--cucumber/features/step_definitions/firewall_leaks.rb (renamed from features/step_definitions/firewall_leaks.rb)0
-rw-r--r--cucumber/features/step_definitions/git.rb (renamed from features/step_definitions/git.rb)0
-rw-r--r--cucumber/features/step_definitions/icedove.rb (renamed from features/step_definitions/icedove.rb)0
-rw-r--r--cucumber/features/step_definitions/mac_spoofing.rb (renamed from features/step_definitions/mac_spoofing.rb)0
-rw-r--r--cucumber/features/step_definitions/pidgin.rb (renamed from features/step_definitions/pidgin.rb)0
-rw-r--r--cucumber/features/step_definitions/po.rb (renamed from features/step_definitions/po.rb)0
-rw-r--r--cucumber/features/step_definitions/root_access_control.rb (renamed from features/step_definitions/root_access_control.rb)0
-rw-r--r--cucumber/features/step_definitions/snapshots.rb (renamed from features/step_definitions/snapshots.rb)0
-rw-r--r--cucumber/features/step_definitions/ssh.rb (renamed from features/step_definitions/ssh.rb)0
-rw-r--r--cucumber/features/step_definitions/time_syncing.rb (renamed from features/step_definitions/time_syncing.rb)0
-rw-r--r--cucumber/features/step_definitions/tor.rb (renamed from features/step_definitions/tor.rb)0
-rw-r--r--cucumber/features/step_definitions/torified_browsing.rb (renamed from features/step_definitions/torified_browsing.rb)0
-rw-r--r--cucumber/features/step_definitions/torified_gnupg.rb (renamed from features/step_definitions/torified_gnupg.rb)0
-rw-r--r--cucumber/features/step_definitions/torified_misc.rb (renamed from features/step_definitions/torified_misc.rb)0
-rw-r--r--cucumber/features/step_definitions/totem.rb (renamed from features/step_definitions/totem.rb)0
-rw-r--r--cucumber/features/step_definitions/unsafe_browser.rb (renamed from features/step_definitions/unsafe_browser.rb)0
-rw-r--r--cucumber/features/step_definitions/untrusted_partitions.rb (renamed from features/step_definitions/untrusted_partitions.rb)0
-rw-r--r--cucumber/features/step_definitions/usb.rb (renamed from features/step_definitions/usb.rb)0
-rw-r--r--cucumber/features/support/config.rb (renamed from features/support/config.rb)0
-rw-r--r--cucumber/features/support/env.rb (renamed from features/support/env.rb)0
-rw-r--r--cucumber/features/support/extra_hooks.rb (renamed from features/support/extra_hooks.rb)0
-rw-r--r--cucumber/features/support/helpers/chatbot_helper.rb (renamed from features/support/helpers/chatbot_helper.rb)0
-rw-r--r--cucumber/features/support/helpers/ctcp_helper.rb (renamed from features/support/helpers/ctcp_helper.rb)0
-rw-r--r--cucumber/features/support/helpers/display_helper.rb (renamed from features/support/helpers/display_helper.rb)0
-rw-r--r--cucumber/features/support/helpers/exec_helper.rb (renamed from features/support/helpers/exec_helper.rb)0
-rw-r--r--cucumber/features/support/helpers/firewall_helper.rb (renamed from features/support/helpers/firewall_helper.rb)0
-rw-r--r--cucumber/features/support/helpers/misc_helpers.rb (renamed from features/support/helpers/misc_helpers.rb)0
-rw-r--r--cucumber/features/support/helpers/sikuli_helper.rb (renamed from features/support/helpers/sikuli_helper.rb)0
-rw-r--r--cucumber/features/support/helpers/sniffing_helper.rb (renamed from features/support/helpers/sniffing_helper.rb)0
-rw-r--r--cucumber/features/support/helpers/sshd_helper.rb (renamed from features/support/helpers/sshd_helper.rb)0
-rw-r--r--cucumber/features/support/helpers/storage_helper.rb (renamed from features/support/helpers/storage_helper.rb)0
-rw-r--r--cucumber/features/support/helpers/vm_helper.rb (renamed from features/support/helpers/vm_helper.rb)0
-rw-r--r--cucumber/features/support/hooks.rb (renamed from features/support/hooks.rb)0
-rw-r--r--features/apt.feature36
-rw-r--r--features/build.feature212
-rw-r--r--features/checks.feature107
-rw-r--r--features/dhcp.feature22
-rw-r--r--features/electrum.feature34
-rw-r--r--features/encryption.feature35
-rw-r--r--features/evince.feature66
-rw-r--r--features/icedove.feature39
-rw-r--r--features/localization.feature19
-rw-r--r--features/mac_spoofing.feature71
-rw-r--r--features/mat.feature13
-rw-r--r--features/persistence.feature55
-rw-r--r--features/pidgin.feature135
-rw-r--r--features/po.feature9
-rw-r--r--features/root_access_control.feature33
-rw-r--r--features/ssh.feature31
-rw-r--r--features/time_syncing.feature129
-rw-r--r--features/tor_bridges.feature36
-rw-r--r--features/tor_enforcement.feature76
-rw-r--r--features/tor_stream_isolation.feature62
-rw-r--r--features/torified_browsing.feature172
-rw-r--r--features/torified_git.feature31
-rw-r--r--features/torified_gnupg.feature53
-rw-r--r--features/torified_misc.feature24
-rw-r--r--features/totem.feature70
-rw-r--r--features/unsafe_browser.feature73
-rw-r--r--features/untrusted_partitions.feature80
-rw-r--r--features/usb_install.feature107
-rw-r--r--features/usb_upgrade.feature164
125 files changed, 0 insertions, 1994 deletions
diff --git a/features/README-sikuli-cucumber b/cucumber/README-sikuli-cucumber
index 24d90aaf..24d90aaf 100644
--- a/features/README-sikuli-cucumber
+++ b/cucumber/README-sikuli-cucumber
diff --git a/bin/lvc/run_test_suite b/cucumber/bin/run_test_suite
index 5b40c389..5b40c389 100755
--- a/bin/lvc/run_test_suite
+++ b/cucumber/bin/run_test_suite
diff --git a/features/config/defaults.yml b/cucumber/features/config/defaults.yml
index 9c312146..9c312146 100644
--- a/features/config/defaults.yml
+++ b/cucumber/features/config/defaults.yml
diff --git a/features/domains/default.xml b/cucumber/features/domains/default.xml
index f1004dcf..f1004dcf 100644
--- a/features/domains/default.xml
+++ b/cucumber/features/domains/default.xml
diff --git a/features/domains/default_net.xml b/cucumber/features/domains/default_net.xml
index fd2966eb..fd2966eb 100644
--- a/features/domains/default_net.xml
+++ b/cucumber/features/domains/default_net.xml
diff --git a/features/domains/disk.xml b/cucumber/features/domains/disk.xml
index 8193fea3..8193fea3 100644
--- a/features/domains/disk.xml
+++ b/cucumber/features/domains/disk.xml
diff --git a/features/domains/fs_share.xml b/cucumber/features/domains/fs_share.xml
index 718755ea..718755ea 100644
--- a/features/domains/fs_share.xml
+++ b/cucumber/features/domains/fs_share.xml
diff --git a/features/domains/storage_pool.xml b/cucumber/features/domains/storage_pool.xml
index ce0a6915..ce0a6915 100644
--- a/features/domains/storage_pool.xml
+++ b/cucumber/features/domains/storage_pool.xml
diff --git a/features/domains/volume.xml b/cucumber/features/domains/volume.xml
index 702d5a05..702d5a05 100644
--- a/features/domains/volume.xml
+++ b/cucumber/features/domains/volume.xml
diff --git a/features/images/DebianInstallerCountrySelection.png b/cucumber/features/images/DebianInstallerCountrySelection.png
index fe130993..fe130993 100644
--- a/features/images/DebianInstallerCountrySelection.png
+++ b/cucumber/features/images/DebianInstallerCountrySelection.png
Binary files differ
diff --git a/features/images/DebianInstallerDomainPrompt.png b/cucumber/features/images/DebianInstallerDomainPrompt.png
index d7fca5f8..d7fca5f8 100644
--- a/features/images/DebianInstallerDomainPrompt.png
+++ b/cucumber/features/images/DebianInstallerDomainPrompt.png
Binary files differ
diff --git a/features/images/DebianInstallerHostnamePrompt.png b/cucumber/features/images/DebianInstallerHostnamePrompt.png
index f1325c8d..f1325c8d 100644
--- a/features/images/DebianInstallerHostnamePrompt.png
+++ b/cucumber/features/images/DebianInstallerHostnamePrompt.png
Binary files differ
diff --git a/features/images/DebianInstallerHttpProxy.png b/cucumber/features/images/DebianInstallerHttpProxy.png
index 04b3e13e..04b3e13e 100644
--- a/features/images/DebianInstallerHttpProxy.png
+++ b/cucumber/features/images/DebianInstallerHttpProxy.png
Binary files differ
diff --git a/features/images/DebianInstallerInstallingBaseSystem.png b/cucumber/features/images/DebianInstallerInstallingBaseSystem.png
index 0b9e1c7f..0b9e1c7f 100644
--- a/features/images/DebianInstallerInstallingBaseSystem.png
+++ b/cucumber/features/images/DebianInstallerInstallingBaseSystem.png
Binary files differ
diff --git a/features/images/DebianInstallerMirrorCountry.png b/cucumber/features/images/DebianInstallerMirrorCountry.png
index 9b4df5ea..9b4df5ea 100644
--- a/features/images/DebianInstallerMirrorCountry.png
+++ b/cucumber/features/images/DebianInstallerMirrorCountry.png
Binary files differ
diff --git a/features/images/DebianInstallerNameOfUser.png b/cucumber/features/images/DebianInstallerNameOfUser.png
index e37c7ec4..e37c7ec4 100644
--- a/features/images/DebianInstallerNameOfUser.png
+++ b/cucumber/features/images/DebianInstallerNameOfUser.png
Binary files differ
diff --git a/features/images/DebianInstallerNoDiskFound.png b/cucumber/features/images/DebianInstallerNoDiskFound.png
index 671f52d6..671f52d6 100644
--- a/features/images/DebianInstallerNoDiskFound.png
+++ b/cucumber/features/images/DebianInstallerNoDiskFound.png
Binary files differ
diff --git a/features/images/DebianInstallerPartitioningMethod.png b/cucumber/features/images/DebianInstallerPartitioningMethod.png
index 9e44360e..9e44360e 100644
--- a/features/images/DebianInstallerPartitioningMethod.png
+++ b/cucumber/features/images/DebianInstallerPartitioningMethod.png
Binary files differ
diff --git a/features/images/DebianInstallerPartitioningScheme.png b/cucumber/features/images/DebianInstallerPartitioningScheme.png
index 97105b62..97105b62 100644
--- a/features/images/DebianInstallerPartitioningScheme.png
+++ b/cucumber/features/images/DebianInstallerPartitioningScheme.png
Binary files differ
diff --git a/features/images/DebianInstallerRootPassword.png b/cucumber/features/images/DebianInstallerRootPassword.png
index 27368fd7..27368fd7 100644
--- a/features/images/DebianInstallerRootPassword.png
+++ b/cucumber/features/images/DebianInstallerRootPassword.png
Binary files differ
diff --git a/features/images/DebianInstallerSelectDiskToPartition.png b/cucumber/features/images/DebianInstallerSelectDiskToPartition.png
index 1f14bb1a..1f14bb1a 100644
--- a/features/images/DebianInstallerSelectDiskToPartition.png
+++ b/cucumber/features/images/DebianInstallerSelectDiskToPartition.png
Binary files differ
diff --git a/features/images/DebianInstallerSelectLangEnglish.png b/cucumber/features/images/DebianInstallerSelectLangEnglish.png
index 85f848d5..85f848d5 100644
--- a/features/images/DebianInstallerSelectLangEnglish.png
+++ b/cucumber/features/images/DebianInstallerSelectLangEnglish.png
Binary files differ
diff --git a/features/images/DebianInstallerSelectLangEnglishUK.png b/cucumber/features/images/DebianInstallerSelectLangEnglishUK.png
index c0da761f..c0da761f 100644
--- a/features/images/DebianInstallerSelectLangEnglishUK.png
+++ b/cucumber/features/images/DebianInstallerSelectLangEnglishUK.png
Binary files differ
diff --git a/features/images/DebianInstallerUserPassword.png b/cucumber/features/images/DebianInstallerUserPassword.png
index bf9964aa..bf9964aa 100644
--- a/features/images/DebianInstallerUserPassword.png
+++ b/cucumber/features/images/DebianInstallerUserPassword.png
Binary files differ
diff --git a/features/images/DebianLive7BootSplash.png b/cucumber/features/images/DebianLive7BootSplash.png
index b64353aa..b64353aa 100644
--- a/features/images/DebianLive7BootSplash.png
+++ b/cucumber/features/images/DebianLive7BootSplash.png
Binary files differ
diff --git a/features/images/DebianLive7BootSplashTabMsg.png b/cucumber/features/images/DebianLive7BootSplashTabMsg.png
index 150830b7..150830b7 100644
--- a/features/images/DebianLive7BootSplashTabMsg.png
+++ b/cucumber/features/images/DebianLive7BootSplashTabMsg.png
Binary files differ
diff --git a/features/images/DebianLive7Greeter.png b/cucumber/features/images/DebianLive7Greeter.png
index f1afaabe..f1afaabe 100644
--- a/features/images/DebianLive7Greeter.png
+++ b/cucumber/features/images/DebianLive7Greeter.png
Binary files differ
diff --git a/features/images/DebianLiveBootSplash.png b/cucumber/features/images/DebianLiveBootSplash.png
index 11ee1494..11ee1494 100644
--- a/features/images/DebianLiveBootSplash.png
+++ b/cucumber/features/images/DebianLiveBootSplash.png
Binary files differ
diff --git a/features/images/DebianLiveBootSplashTabMsg.png b/cucumber/features/images/DebianLiveBootSplashTabMsg.png
index cdddaf1d..cdddaf1d 100644
--- a/features/images/DebianLiveBootSplashTabMsg.png
+++ b/cucumber/features/images/DebianLiveBootSplashTabMsg.png
Binary files differ
diff --git a/features/images/DebianLoginPromptVT.png b/cucumber/features/images/DebianLoginPromptVT.png
index ec267820..ec267820 100644
--- a/features/images/DebianLoginPromptVT.png
+++ b/cucumber/features/images/DebianLoginPromptVT.png
Binary files differ
diff --git a/features/images/d-i8_bootsplash.png b/cucumber/features/images/d-i8_bootsplash.png
index 086c65cb..086c65cb 100644
--- a/features/images/d-i8_bootsplash.png
+++ b/cucumber/features/images/d-i8_bootsplash.png
Binary files differ
diff --git a/features/images/d-i_ArchiveMirror.png b/cucumber/features/images/d-i_ArchiveMirror.png
index 7e53f189..7e53f189 100644
--- a/features/images/d-i_ArchiveMirror.png
+++ b/cucumber/features/images/d-i_ArchiveMirror.png
Binary files differ
diff --git a/features/images/d-i_ChooseSoftware.png b/cucumber/features/images/d-i_ChooseSoftware.png
index 93447158..93447158 100644
--- a/features/images/d-i_ChooseSoftware.png
+++ b/cucumber/features/images/d-i_ChooseSoftware.png
Binary files differ
diff --git a/features/images/d-i_DesktopTask_No.png b/cucumber/features/images/d-i_DesktopTask_No.png
index 6dbf9df4..6dbf9df4 100644
--- a/features/images/d-i_DesktopTask_No.png
+++ b/cucumber/features/images/d-i_DesktopTask_No.png
Binary files differ
diff --git a/features/images/d-i_DesktopTask_Yes.png b/cucumber/features/images/d-i_DesktopTask_Yes.png
index 02cbaa5d..02cbaa5d 100644
--- a/features/images/d-i_DesktopTask_Yes.png
+++ b/cucumber/features/images/d-i_DesktopTask_Yes.png
Binary files differ
diff --git a/features/images/d-i_F12BootMenu.png b/cucumber/features/images/d-i_F12BootMenu.png
index 67a21856..67a21856 100644
--- a/features/images/d-i_F12BootMenu.png
+++ b/cucumber/features/images/d-i_F12BootMenu.png
Binary files differ
diff --git a/features/images/d-i_FinishPartitioning.png b/cucumber/features/images/d-i_FinishPartitioning.png
index 50396500..50396500 100644
--- a/features/images/d-i_FinishPartitioning.png
+++ b/cucumber/features/images/d-i_FinishPartitioning.png
Binary files differ
diff --git a/features/images/d-i_GRUBEnterDev.png b/cucumber/features/images/d-i_GRUBEnterDev.png
index 6df484ed..6df484ed 100644
--- a/features/images/d-i_GRUBEnterDev.png
+++ b/cucumber/features/images/d-i_GRUBEnterDev.png
Binary files differ
diff --git a/features/images/d-i_GRUB_Debian.png b/cucumber/features/images/d-i_GRUB_Debian.png
index 3b67cfbe..3b67cfbe 100644
--- a/features/images/d-i_GRUB_Debian.png
+++ b/cucumber/features/images/d-i_GRUB_Debian.png
Binary files differ
diff --git a/features/images/d-i_GRUBdev.png b/cucumber/features/images/d-i_GRUBdev.png
index 9d554d74..9d554d74 100644
--- a/features/images/d-i_GRUBdev.png
+++ b/cucumber/features/images/d-i_GRUBdev.png
Binary files differ
diff --git a/features/images/d-i_HttpProxy.png b/cucumber/features/images/d-i_HttpProxy.png
index 4163a5b3..4163a5b3 100644
--- a/features/images/d-i_HttpProxy.png
+++ b/cucumber/features/images/d-i_HttpProxy.png
Binary files differ
diff --git a/features/images/d-i_InstallComplete.png b/cucumber/features/images/d-i_InstallComplete.png
index a8564464..a8564464 100644
--- a/features/images/d-i_InstallComplete.png
+++ b/cucumber/features/images/d-i_InstallComplete.png
Binary files differ
diff --git a/features/images/d-i_InstallGRUB.png b/cucumber/features/images/d-i_InstallGRUB.png
index e491fbd1..e491fbd1 100644
--- a/features/images/d-i_InstallGRUB.png
+++ b/cucumber/features/images/d-i_InstallGRUB.png
Binary files differ
diff --git a/features/images/d-i_No.png b/cucumber/features/images/d-i_No.png
index 1108addc..1108addc 100644
--- a/features/images/d-i_No.png
+++ b/cucumber/features/images/d-i_No.png
Binary files differ
diff --git a/features/images/d-i_ScanCD.png b/cucumber/features/images/d-i_ScanCD.png
index 5790bcce..5790bcce 100644
--- a/features/images/d-i_ScanCD.png
+++ b/cucumber/features/images/d-i_ScanCD.png
Binary files differ
diff --git a/features/images/d-i_SelectBootDev.png b/cucumber/features/images/d-i_SelectBootDev.png
index 7abef3ec..7abef3ec 100644
--- a/features/images/d-i_SelectBootDev.png
+++ b/cucumber/features/images/d-i_SelectBootDev.png
Binary files differ
diff --git a/features/images/d-i_UseNetMirror.png b/cucumber/features/images/d-i_UseNetMirror.png
index 2b41228b..2b41228b 100644
--- a/features/images/d-i_UseNetMirror.png
+++ b/cucumber/features/images/d-i_UseNetMirror.png
Binary files differ
diff --git a/features/images/d-i_Yes.png b/cucumber/features/images/d-i_Yes.png
index 17fab5b9..17fab5b9 100644
--- a/features/images/d-i_Yes.png
+++ b/cucumber/features/images/d-i_Yes.png
Binary files differ
diff --git a/features/images/d-i_popcon.png b/cucumber/features/images/d-i_popcon.png
index ed0ba618..ed0ba618 100644
--- a/features/images/d-i_popcon.png
+++ b/cucumber/features/images/d-i_popcon.png
Binary files differ
diff --git a/features/DebianLive/apt.feature b/cucumber/features/install.feature
index 3b71b6c2..3b71b6c2 100644
--- a/features/DebianLive/apt.feature
+++ b/cucumber/features/install.feature
diff --git a/features/misc_files/sample.pdf b/cucumber/features/misc_files/sample.pdf
index d0cc9502..d0cc9502 100644
--- a/features/misc_files/sample.pdf
+++ b/cucumber/features/misc_files/sample.pdf
Binary files differ
diff --git a/features/misc_files/sample.tex b/cucumber/features/misc_files/sample.tex
index 043faaec..043faaec 100644
--- a/features/misc_files/sample.tex
+++ b/cucumber/features/misc_files/sample.tex
diff --git a/features/scripts/otr-bot.py b/cucumber/features/scripts/otr-bot.py
index 0afd15a4..0afd15a4 100755
--- a/features/scripts/otr-bot.py
+++ b/cucumber/features/scripts/otr-bot.py
diff --git a/features/scripts/vm-execute b/cucumber/features/scripts/vm-execute
index fc1bf459..fc1bf459 100755
--- a/features/scripts/vm-execute
+++ b/cucumber/features/scripts/vm-execute
diff --git a/features/step_definitions/apt.rb b/cucumber/features/step_definitions/apt.rb
index c69d2598..c69d2598 100644
--- a/features/step_definitions/apt.rb
+++ b/cucumber/features/step_definitions/apt.rb
diff --git a/features/step_definitions/browser.rb b/cucumber/features/step_definitions/browser.rb
index 84ef1d35..84ef1d35 100644
--- a/features/step_definitions/browser.rb
+++ b/cucumber/features/step_definitions/browser.rb
diff --git a/features/step_definitions/build.rb b/cucumber/features/step_definitions/build.rb
index fd001ff4..fd001ff4 100644
--- a/features/step_definitions/build.rb
+++ b/cucumber/features/step_definitions/build.rb
diff --git a/features/step_definitions/checks.rb b/cucumber/features/step_definitions/checks.rb
index 423b8390..423b8390 100644
--- a/features/step_definitions/checks.rb
+++ b/cucumber/features/step_definitions/checks.rb
diff --git a/features/step_definitions/common_steps.rb b/cucumber/features/step_definitions/common_steps.rb
index bd03cebb..bd03cebb 100644
--- a/features/step_definitions/common_steps.rb
+++ b/cucumber/features/step_definitions/common_steps.rb
diff --git a/features/step_definitions/dhcp.rb b/cucumber/features/step_definitions/dhcp.rb
index ef4d9e15..ef4d9e15 100644
--- a/features/step_definitions/dhcp.rb
+++ b/cucumber/features/step_definitions/dhcp.rb
diff --git a/features/step_definitions/electrum.rb b/cucumber/features/step_definitions/electrum.rb
index 447983d4..447983d4 100644
--- a/features/step_definitions/electrum.rb
+++ b/cucumber/features/step_definitions/electrum.rb
diff --git a/features/step_definitions/encryption.rb b/cucumber/features/step_definitions/encryption.rb
index 9f7f1b96..9f7f1b96 100644
--- a/features/step_definitions/encryption.rb
+++ b/cucumber/features/step_definitions/encryption.rb
diff --git a/features/step_definitions/evince.rb b/cucumber/features/step_definitions/evince.rb
index 9411ac4d..9411ac4d 100644
--- a/features/step_definitions/evince.rb
+++ b/cucumber/features/step_definitions/evince.rb
diff --git a/features/step_definitions/firewall_leaks.rb b/cucumber/features/step_definitions/firewall_leaks.rb
index 942d00b8..942d00b8 100644
--- a/features/step_definitions/firewall_leaks.rb
+++ b/cucumber/features/step_definitions/firewall_leaks.rb
diff --git a/features/step_definitions/git.rb b/cucumber/features/step_definitions/git.rb
index bf6f869d..bf6f869d 100644
--- a/features/step_definitions/git.rb
+++ b/cucumber/features/step_definitions/git.rb
diff --git a/features/step_definitions/icedove.rb b/cucumber/features/step_definitions/icedove.rb
index d3672895..d3672895 100644
--- a/features/step_definitions/icedove.rb
+++ b/cucumber/features/step_definitions/icedove.rb
diff --git a/features/step_definitions/mac_spoofing.rb b/cucumber/features/step_definitions/mac_spoofing.rb
index a4aa8714..a4aa8714 100644
--- a/features/step_definitions/mac_spoofing.rb
+++ b/cucumber/features/step_definitions/mac_spoofing.rb
diff --git a/features/step_definitions/pidgin.rb b/cucumber/features/step_definitions/pidgin.rb
index 3f5ed931..3f5ed931 100644
--- a/features/step_definitions/pidgin.rb
+++ b/cucumber/features/step_definitions/pidgin.rb
diff --git a/features/step_definitions/po.rb b/cucumber/features/step_definitions/po.rb
index c73bacef..c73bacef 100644
--- a/features/step_definitions/po.rb
+++ b/cucumber/features/step_definitions/po.rb
diff --git a/features/step_definitions/root_access_control.rb b/cucumber/features/step_definitions/root_access_control.rb
index ff1bdfcc..ff1bdfcc 100644
--- a/features/step_definitions/root_access_control.rb
+++ b/cucumber/features/step_definitions/root_access_control.rb
diff --git a/features/step_definitions/snapshots.rb b/cucumber/features/step_definitions/snapshots.rb
index 13e4a5b6..13e4a5b6 100644
--- a/features/step_definitions/snapshots.rb
+++ b/cucumber/features/step_definitions/snapshots.rb
diff --git a/features/step_definitions/ssh.rb b/cucumber/features/step_definitions/ssh.rb
index 038b2977..038b2977 100644
--- a/features/step_definitions/ssh.rb
+++ b/cucumber/features/step_definitions/ssh.rb
diff --git a/features/step_definitions/time_syncing.rb b/cucumber/features/step_definitions/time_syncing.rb
index 319fb521..319fb521 100644
--- a/features/step_definitions/time_syncing.rb
+++ b/cucumber/features/step_definitions/time_syncing.rb
diff --git a/features/step_definitions/tor.rb b/cucumber/features/step_definitions/tor.rb
index ac12fd4c..ac12fd4c 100644
--- a/features/step_definitions/tor.rb
+++ b/cucumber/features/step_definitions/tor.rb
diff --git a/features/step_definitions/torified_browsing.rb b/cucumber/features/step_definitions/torified_browsing.rb
index c8f3ff1d..c8f3ff1d 100644
--- a/features/step_definitions/torified_browsing.rb
+++ b/cucumber/features/step_definitions/torified_browsing.rb
diff --git a/features/step_definitions/torified_gnupg.rb b/cucumber/features/step_definitions/torified_gnupg.rb
index 4b4cc040..4b4cc040 100644
--- a/features/step_definitions/torified_gnupg.rb
+++ b/cucumber/features/step_definitions/torified_gnupg.rb
diff --git a/features/step_definitions/torified_misc.rb b/cucumber/features/step_definitions/torified_misc.rb
index 7112776a..7112776a 100644
--- a/features/step_definitions/torified_misc.rb
+++ b/cucumber/features/step_definitions/torified_misc.rb
diff --git a/features/step_definitions/totem.rb b/cucumber/features/step_definitions/totem.rb
index 72698dde..72698dde 100644
--- a/features/step_definitions/totem.rb
+++ b/cucumber/features/step_definitions/totem.rb
diff --git a/features/step_definitions/unsafe_browser.rb b/cucumber/features/step_definitions/unsafe_browser.rb
index b8c04983..b8c04983 100644
--- a/features/step_definitions/unsafe_browser.rb
+++ b/cucumber/features/step_definitions/unsafe_browser.rb
diff --git a/features/step_definitions/untrusted_partitions.rb b/cucumber/features/step_definitions/untrusted_partitions.rb
index 43453b2f..43453b2f 100644
--- a/features/step_definitions/untrusted_partitions.rb
+++ b/cucumber/features/step_definitions/untrusted_partitions.rb
diff --git a/features/step_definitions/usb.rb b/cucumber/features/step_definitions/usb.rb
index 76f94d2f..76f94d2f 100644
--- a/features/step_definitions/usb.rb
+++ b/cucumber/features/step_definitions/usb.rb
diff --git a/features/support/config.rb b/cucumber/features/support/config.rb
index 25c107b4..25c107b4 100644
--- a/features/support/config.rb
+++ b/cucumber/features/support/config.rb
diff --git a/features/support/env.rb b/cucumber/features/support/env.rb
index 2e17ae76..2e17ae76 100644
--- a/features/support/env.rb
+++ b/cucumber/features/support/env.rb
diff --git a/features/support/extra_hooks.rb b/cucumber/features/support/extra_hooks.rb
index 16196a55..16196a55 100644
--- a/features/support/extra_hooks.rb
+++ b/cucumber/features/support/extra_hooks.rb
diff --git a/features/support/helpers/chatbot_helper.rb b/cucumber/features/support/helpers/chatbot_helper.rb
index 23ce3e1a..23ce3e1a 100644
--- a/features/support/helpers/chatbot_helper.rb
+++ b/cucumber/features/support/helpers/chatbot_helper.rb
diff --git a/features/support/helpers/ctcp_helper.rb b/cucumber/features/support/helpers/ctcp_helper.rb
index ee5180ab..ee5180ab 100644
--- a/features/support/helpers/ctcp_helper.rb
+++ b/cucumber/features/support/helpers/ctcp_helper.rb
diff --git a/features/support/helpers/display_helper.rb b/cucumber/features/support/helpers/display_helper.rb
index b4dce733..b4dce733 100644
--- a/features/support/helpers/display_helper.rb
+++ b/cucumber/features/support/helpers/display_helper.rb
diff --git a/features/support/helpers/exec_helper.rb b/cucumber/features/support/helpers/exec_helper.rb
index 14e12269..14e12269 100644
--- a/features/support/helpers/exec_helper.rb
+++ b/cucumber/features/support/helpers/exec_helper.rb
diff --git a/features/support/helpers/firewall_helper.rb b/cucumber/features/support/helpers/firewall_helper.rb
index fce363c5..fce363c5 100644
--- a/features/support/helpers/firewall_helper.rb
+++ b/cucumber/features/support/helpers/firewall_helper.rb
diff --git a/features/support/helpers/misc_helpers.rb b/cucumber/features/support/helpers/misc_helpers.rb
index 7e09411f..7e09411f 100644
--- a/features/support/helpers/misc_helpers.rb
+++ b/cucumber/features/support/helpers/misc_helpers.rb
diff --git a/features/support/helpers/sikuli_helper.rb b/cucumber/features/support/helpers/sikuli_helper.rb
index 486b0e2e..486b0e2e 100644
--- a/features/support/helpers/sikuli_helper.rb
+++ b/cucumber/features/support/helpers/sikuli_helper.rb
diff --git a/features/support/helpers/sniffing_helper.rb b/cucumber/features/support/helpers/sniffing_helper.rb
index 213411eb..213411eb 100644
--- a/features/support/helpers/sniffing_helper.rb
+++ b/cucumber/features/support/helpers/sniffing_helper.rb
diff --git a/features/support/helpers/sshd_helper.rb b/cucumber/features/support/helpers/sshd_helper.rb
index 2e0069c0..2e0069c0 100644
--- a/features/support/helpers/sshd_helper.rb
+++ b/cucumber/features/support/helpers/sshd_helper.rb
diff --git a/features/support/helpers/storage_helper.rb b/cucumber/features/support/helpers/storage_helper.rb
index 21537a92..21537a92 100644
--- a/features/support/helpers/storage_helper.rb
+++ b/cucumber/features/support/helpers/storage_helper.rb
diff --git a/features/support/helpers/vm_helper.rb b/cucumber/features/support/helpers/vm_helper.rb
index 6d7204d4..6d7204d4 100644
--- a/features/support/helpers/vm_helper.rb
+++ b/cucumber/features/support/helpers/vm_helper.rb
diff --git a/features/support/hooks.rb b/cucumber/features/support/hooks.rb
index b3bdecef..b3bdecef 100644
--- a/features/support/hooks.rb
+++ b/cucumber/features/support/hooks.rb
diff --git a/features/apt.feature b/features/apt.feature
deleted file mode 100644
index ac778c26..00000000
--- a/features/apt.feature
+++ /dev/null
@@ -1,36 +0,0 @@
-#10497: wait_until_tor_is_working
-@product @fragile
-Feature: Installing packages through APT
- As a Tails user
- when I set an administration password in Tails Greeter
- I should be able to install packages using APT and Synaptic
- and all Internet traffic should flow only through Tor.
-
- Background:
- Given a computer
- And I capture all network traffic
- And I start the computer
- And the computer boots DebianLive7
- And I set sudo password "asdf"
- And I log in to a new session
- And GNOME has started
- And Tor is ready
- And all notifications have disappeared
- And available upgrades have been checked
- And I save the state so the background can be restored next scenario
-
- Scenario: APT sources are configured correctly
- Then the only hosts in APT sources are "ftp.us.debian.org,http.debian.net,ftp.debian.org,security.debian.org"
-
- #10496: apt-get scenarios are fragile
- @check_tor_leaks @fragile
- Scenario: Install packages using apt
- When I update APT using apt
- Then I should be able to install a package using apt
-
- #10441: Synaptic test is fragile
- @check_tor_leaks @fragile
- Scenario: Install packages using Synaptic
- When I start Synaptic
- And I update APT using Synaptic
- Then I should be able to install a package using Synaptic
diff --git a/features/build.feature b/features/build.feature
deleted file mode 100644
index 74d314de..00000000
--- a/features/build.feature
+++ /dev/null
@@ -1,212 +0,0 @@
-@source
-Feature: custom APT sources to build branches
- As a Tails developer, when I build Tails, I'd be happy if
- the proper APT sources were automatically picked depending
- on which Git branch I am working on.
-
- Scenario: build from an untagged stable branch where the config/APT_overlays.d directory is empty
- Given I am working on the stable base branch
- And the last version mentioned in debian/changelog is 1.0
- And Tails 1.0 has not been released yet
- And the config/APT_overlays.d directory is empty
- When I successfully run tails-custom-apt-sources
- Then I should see only the 'stable' suite
-
- Scenario: build from an untagged stable branch where config/APT_overlays.d is not empty
- Given I am working on the stable base branch
- And the last version mentioned in debian/changelog is 1.0
- And Tails 1.0 has not been released yet
- And config/APT_overlays.d contains 'feature-foo'
- And config/APT_overlays.d contains 'bugfix-bar'
- When I successfully run tails-custom-apt-sources
- Then I should see the 'stable' suite
- And I should see the 'feature-foo' suite
- And I should see the 'bugfix-bar' suite
- But I should not see the '1.0' suite
-
- Scenario: build from a tagged stable branch where the config/APT_overlays.d directory is empty
- Given Tails 0.10 has been released
- And the last version mentioned in debian/changelog is 0.10
- And I am working on the stable base branch
- And the config/APT_overlays.d directory is empty
- When I successfully run tails-custom-apt-sources
- Then I should see only the '0.10' suite
-
- Scenario: build from a tagged stable branch where config/APT_overlays.d is not empty
- Given Tails 0.10 has been released
- And the last version mentioned in debian/changelog is 0.10
- And I am working on the stable base branch
- And config/APT_overlays.d contains 'feature-foo'
- When I run tails-custom-apt-sources
- Then it should fail
-
- Scenario: build from a bugfix branch without overlays for a stable release
- Given Tails 0.10 has been released
- And the last version mentioned in debian/changelog is 0.10.1
- And Tails 0.10.1 has not been released yet
- And I am working on the bugfix/disable_gdomap branch based on stable
- And the config/APT_overlays.d directory is empty
- When I successfully run tails-custom-apt-sources
- Then I should see only the 'stable' suite
-
- Scenario: build from a bugfix branch with overlays for a stable release
- Given Tails 0.10 has been released
- And the last version mentioned in debian/changelog is 0.10.1
- And Tails 0.10.1 has not been released yet
- And I am working on the bugfix/disable_gdomap branch based on stable
- And config/APT_overlays.d contains 'bugfix-disable-gdomap'
- And config/APT_overlays.d contains 'bugfix-bar'
- When I successfully run tails-custom-apt-sources
- Then I should see the 'stable' suite
- And I should see the 'bugfix-disable-gdomap' suite
- And I should see the 'bugfix-bar' suite
- But I should not see the '0.10' suite
-
- Scenario: build from an untagged testing branch where the config/APT_overlays.d directory is empty
- Given I am working on the testing base branch
- And the last version mentioned in debian/changelog is 0.11
- And Tails 0.11 has not been released yet
- And the config/APT_overlays.d directory is empty
- When I successfully run tails-custom-apt-sources
- Then I should see the 'testing' suite
- And I should not see the '0.11' suite
- And I should not see the 'feature-foo' suite
- And I should not see the 'bugfix-bar' suite
-
- Scenario: build from an untagged testing branch where config/APT_overlays.d is not empty
- Given I am working on the testing base branch
- And the last version mentioned in debian/changelog is 0.11
- And Tails 0.11 has not been released yet
- And config/APT_overlays.d contains 'feature-foo'
- And config/APT_overlays.d contains 'bugfix-bar'
- When I successfully run tails-custom-apt-sources
- Then I should see the 'testing' suite
- And I should see the 'feature-foo' suite
- And I should see the 'bugfix-bar' suite
- But I should not see the '0.11' suite
-
- Scenario: build from a tagged testing branch where the config/APT_overlays.d directory is empty
- Given I am working on the testing base branch
- And the last version mentioned in debian/changelog is 0.11
- And Tails 0.11 has been released
- And the config/APT_overlays.d directory is empty
- When I successfully run tails-custom-apt-sources
- Then I should see only the '0.11' suite
-
- Scenario: build from a tagged testing branch where config/APT_overlays.d is not empty
- Given I am working on the testing base branch
- And the last version mentioned in debian/changelog is 0.11
- And Tails 0.11 has been released
- And config/APT_overlays.d contains 'feature-foo'
- When I run tails-custom-apt-sources
- Then it should fail
-
- Scenario: build a release candidate from a tagged testing branch
- Given I am working on the testing base branch
- And Tails 0.11 has been released
- And the last version mentioned in debian/changelog is 0.12~rc1
- And Tails 0.12-rc1 has been tagged
- And the config/APT_overlays.d directory is empty
- When I successfully run tails-custom-apt-sources
- Then I should see only the '0.12-rc1' suite
-
- Scenario: build a release candidate from a tagged testing branch where config/APT_overlays.d is not empty
- Given I am working on the testing base branch
- And Tails 0.11 has been released
- And the last version mentioned in debian/changelog is 0.12~rc1
- And Tails 0.12-rc1 has been tagged
- And config/APT_overlays.d contains 'bugfix-bar'
- When I run tails-custom-apt-sources
- Then it should fail
-
- Scenario: build from the devel branch without overlays
- Given I am working on the devel base branch
- And the config/APT_overlays.d directory is empty
- When I successfully run tails-custom-apt-sources
- Then I should see only the 'devel' suite
-
- Scenario: build from the devel branch with overlays
- Given I am working on the devel base branch
- And config/APT_overlays.d contains 'feature-foo'
- And config/APT_overlays.d contains 'bugfix-bar'
- When I successfully run tails-custom-apt-sources
- Then I should see the 'devel' suite
- And I should see the 'feature-foo' suite
- And I should see the 'bugfix-bar' suite
-
- Scenario: build from the feature/jessie branch without overlays
- Given I am working on the feature/jessie base branch
- And the config/APT_overlays.d directory is empty
- When I successfully run tails-custom-apt-sources
- Then I should see only the 'feature-jessie' suite
-
- Scenario: build from the feature/jessie branch with overlays
- Given I am working on the feature/jessie base branch
- And config/APT_overlays.d contains 'feature-7756-reintroduce-whisperback'
- When I successfully run tails-custom-apt-sources
- Then I should see the 'feature-jessie' suite
- And I should see the 'feature-7756-reintroduce-whisperback' suite
-
- Scenario: build from the experimental branch
- Given I am working on the experimental branch based on devel
- And config/APT_overlays.d contains 'feature-foo'
- And config/APT_overlays.d contains 'bugfix-bar'
- When I successfully run tails-custom-apt-sources
- Then I should see the 'devel' suite
- And I should see the 'feature-foo' suite
- And I should see the 'bugfix-bar' suite
-
- Scenario: build from a feature branch with overlays based on devel
- Given I am working on the feature/icedove branch based on devel
- And config/APT_overlays.d contains 'feature-icedove'
- And config/APT_overlays.d contains 'bugfix-bar'
- When I successfully run tails-custom-apt-sources
- Then I should see the 'devel' suite
- And I should see the 'feature-icedove' suite
- And I should see the 'bugfix-bar' suite
-
- Scenario: build from a feature branch without overlays based on devel
- Given I am working on the feature/icedove branch based on devel
- And the config/APT_overlays.d directory is empty
- When I successfully run tails-custom-apt-sources
- Then I should see only the 'devel' suite
-
- Scenario: build from a feature branch with overlays based on feature/jessie
- Given I am working on the feature/7756-reintroduce-whisperback branch based on feature/jessie
- And config/APT_overlays.d contains 'feature-7756-reintroduce-whisperback'
- And config/APT_overlays.d contains 'bugfix-bar'
- When I successfully run tails-custom-apt-sources
- Then I should see the 'feature-jessie' suite
- And I should see the 'feature-7756-reintroduce-whisperback' suite
- And I should see the 'bugfix-bar' suite
-
- Scenario: build from a feature branch without overlays based on feature/jessie
- Given I am working on the feature/icedove branch based on feature/jessie
- And the config/APT_overlays.d directory is empty
- When I successfully run tails-custom-apt-sources
- Then I should see only the 'feature-jessie' suite
-
- Scenario: build from a feature branch based on devel with dots in its name
- Given I am working on the feature/live-boot-3.x branch based on devel
- And config/APT_overlays.d contains 'feature-live-boot-3.x'
- When I successfully run tails-custom-apt-sources
- Then I should see the 'devel' suite
- And I should see the 'feature-live-boot-3.x' suite
-
- Scenario: build from a branch that has no config/APT_overlays.d directory
- Given I am working on the stable base branch
- And the config/APT_overlays.d directory does not exist
- When I run tails-custom-apt-sources
- Then it should fail
-
- Scenario: build from a branch that has no config/base_branch file
- Given I am working on the stable base branch
- And the config/base_branch file does not exist
- When I run tails-custom-apt-sources
- Then it should fail
-
- Scenario: build from a branch where config/base_branch is empty
- Given I am working on the stable base branch
- And the config/base_branch file is empty
- When I run tails-custom-apt-sources
- Then it should fail
diff --git a/features/checks.feature b/features/checks.feature
deleted file mode 100644
index 24d35943..00000000
--- a/features/checks.feature
+++ /dev/null
@@ -1,107 +0,0 @@
-@product
-Feature: Various checks
-
- Scenario: AppArmor is enabled and has enforced profiles
- Given I have started Tails from DVD without network and logged in
- Then AppArmor is enabled
- And some AppArmor profiles are enforced
-
- Scenario: A screenshot is taken when the PRINTSCREEN key is pressed
- Given I have started Tails from DVD without network and logged in
- And there is no screenshot in the live user's Pictures directory
- When I press the "PRINTSCREEN" key
- Then a screenshot is saved to the live user's Pictures directory
-
- Scenario: VirtualBox guest modules are available
- Given I have started Tails from DVD without network and logged in
- When Tails has booted a 64-bit kernel
- Then the VirtualBox guest modules are available
-
- Scenario: The shipped Tails OpenPGP keys are up-to-date
- Given I have started Tails from DVD without network and logged in
- Then the OpenPGP keys shipped with Tails will be valid for the next 3 months
-
- Scenario: The Tails Debian repository key is up-to-date
- Given I have started Tails from DVD without network and logged in
- Then the shipped Debian repository key will be valid for the next 3 months
-
- @doc @fragile
- Scenario: The "Report an Error" launcher will open the support documentation
- Given I have started Tails from DVD without network and logged in
- And the network is plugged
- And Tor is ready
- And all notifications have disappeared
- When I double-click the Report an Error launcher on the desktop
- Then the support documentation page opens in Tor Browser
-
- Scenario: The live user is setup correctly
- Given I have started Tails from DVD without network and logged in
- Then the live user has been setup by live-boot
- And the live user is a member of only its own group and "audio cdrom dialout floppy video plugdev netdev scanner lp lpadmin vboxsf"
- And the live user owns its home dir and it has normal permissions
-
- @fragile
- Scenario: No initial network
- Given I have started Tails from DVD without network and logged in
- And I wait between 30 and 60 seconds
- Then the Tor Status icon tells me that Tor is not usable
- When the network is plugged
- Then Tor is ready
- And the Tor Status icon tells me that Tor is usable
- And all notifications have disappeared
- And the time has synced
-
- @fragile
- Scenario: The 'Tor is ready' notification is shown when Tor has bootstrapped
- Given I have started Tails from DVD without network and logged in
- And the network is plugged
- When I see the 'Tor is ready' notification
- Then Tor is ready
-
- @fragile
- Scenario: The tor process should be confined with Seccomp
- Given I have started Tails from DVD without network and logged in
- And the network is plugged
- And Tor is ready
- Then the running process "tor" is confined with Seccomp in filter mode
-
- @fragile
- Scenario: No unexpected network services
- Given I have started Tails from DVD without network and logged in
- When the network is plugged
- And Tor is ready
- Then no unexpected services are listening for network connections
-
- Scenario: The emergency shutdown applet can shutdown Tails
- Given I have started Tails from DVD without network and logged in
- When I request a shutdown using the emergency shutdown applet
- Then Tails eventually shuts down
-
- Scenario: The emergency shutdown applet can reboot Tails
- Given I have started Tails from DVD without network and logged in
- When I request a reboot using the emergency shutdown applet
- Then Tails eventually restarts
-
- Scenario: tails-debugging-info does not leak information
- Given I have started Tails from DVD without network and logged in
- Then tails-debugging-info is not susceptible to symlink attacks
-
- Scenario: Tails shuts down on DVD boot medium removal
- Given I have started Tails from DVD without network and logged in
- When I eject the boot medium
- Then Tails eventually shuts down
-
- #10720
- @fragile
- Scenario: Tails shuts down on USB boot medium removal
- Given I have started Tails without network from a USB drive without a persistent partition and logged in
- When I eject the boot medium
- Then Tails eventually shuts down
-
- Scenario: The Tails Greeter "disable all networking" option disables networking within Tails
- Given I have started Tails from DVD without network and stopped at Tails Greeter's login screen
- And I enable more Tails Greeter options
- And I disable all networking in the Tails Greeter
- And I log in to a new session
- And the Tails desktop is ready
- Then no network interfaces are enabled
diff --git a/features/dhcp.feature b/features/dhcp.feature
deleted file mode 100644
index 18874dbf..00000000
--- a/features/dhcp.feature
+++ /dev/null
@@ -1,22 +0,0 @@
-@product @fragile
-Feature: Getting a DHCP lease without leaking too much information
- As a Tails user
- when I connect to a network with a DHCP server
- I should be able to connect to the Internet
- and the hostname should not have been leaked on the network.
-
- Background:
- Given I have started Tails from DVD without network and logged in
- And I capture all network traffic
- And the network is plugged
- And Tor is ready
- And all notifications have disappeared
- And available upgrades have been checked
-
- Scenario: Getting a DHCP lease with the default NetworkManager connection
- Then the hostname should not have been leaked on the network
-
- Scenario: Getting a DHCP lease with a manually configured NetworkManager connection
- When I add a wired DHCP NetworkManager connection called "manually-added-con"
- And I switch to the "manually-added-con" NetworkManager connection
- Then the hostname should not have been leaked on the network
diff --git a/features/electrum.feature b/features/electrum.feature
deleted file mode 100644
index e4e8d749..00000000
--- a/features/electrum.feature
+++ /dev/null
@@ -1,34 +0,0 @@
-#10497: wait_until_tor_is_working
-#10720: Tails Installer freezes on Jenkins
-@product @check_tor_leaks @fragile
-Feature: Electrum Bitcoin client
- As a Tails user
- I might want to use a Bitcoin client
- And all Internet traffic should flow only through Tor
-
- Scenario: A warning will be displayed if Electrum is not persistent
- Given I have started Tails from DVD and logged in and the network is connected
- When I start Electrum through the GNOME menu
- But persistence for "electrum" is not enabled
- Then I see a warning that Electrum is not persistent
-
- Scenario: Using a persistent Electrum configuration
- Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
- And the network is plugged
- And Tor is ready
- And available upgrades have been checked
- And all notifications have disappeared
- Then persistence for "electrum" is enabled
- When I start Electrum through the GNOME menu
- But a bitcoin wallet is not present
- Then I am prompted to create a new wallet
- When I create a new bitcoin wallet
- Then a bitcoin wallet is present
- And I see the main Electrum client window
- And Electrum successfully connects to the network
- And I shutdown Tails and wait for the computer to power off
- Given I start Tails from USB drive "__internal" and I login with persistence enabled
- When I start Electrum through the GNOME menu
- And a bitcoin wallet is present
- And I see the main Electrum client window
- Then Electrum successfully connects to the network
diff --git a/features/encryption.feature b/features/encryption.feature
deleted file mode 100644
index 52cc152d..00000000
--- a/features/encryption.feature
+++ /dev/null
@@ -1,35 +0,0 @@
-@product
-Feature: Encryption and verification using GnuPG
- As a Tails user
- I want to be able to easily encrypt and sign messages using GnuPG
- And decrypt and verify GnuPG blocks
-
- Background:
- Given I have started Tails from DVD without network and logged in
- And I generate an OpenPGP key named "test" with password "asdf"
-
- #10992
- @fragile
- Scenario: Encryption and decryption using Tails OpenPGP Applet
- When I type a message into gedit
- And I encrypt the message using my OpenPGP key
- Then I can decrypt the encrypted message
-
- #10992
- @fragile
- Scenario: Signing and verification using Tails OpenPGP Applet
- When I type a message into gedit
- And I sign the message using my OpenPGP key
- Then I can verify the message's signature
-
- #10991
- @fragile
- Scenario: Encryption/signing and decryption/verification using Tails OpenPGP Applet
- When I type a message into gedit
- And I both encrypt and sign the message using my OpenPGP key
- Then I can decrypt and verify the encrypted message
-
- Scenario: Symmetric encryption and decryption using Tails OpenPGP Applet
- When I type a message into gedit
- And I symmetrically encrypt the message with password "asdf"
- Then I can decrypt the encrypted message
diff --git a/features/evince.feature b/features/evince.feature
deleted file mode 100644
index 6fd27eca..00000000
--- a/features/evince.feature
+++ /dev/null
@@ -1,66 +0,0 @@
-@product
-Feature: Using Evince
- As a Tails user
- I want to view and print PDF files in Evince
- And AppArmor should prevent Evince from doing dangerous things
-
- #10994
- @fragile
- Scenario: I can view and print a PDF file stored in /usr/share
- Given I have started Tails from DVD without network and logged in
- When I open "/usr/share/cups/data/default-testpage.pdf" with Evince
- Then I see "CupsTestPage.png" after at most 20 seconds
- And I can print the current document to "/home/amnesia/output.pdf"
-
- #10994
- @fragile
- Scenario: I can view and print a PDF file stored in non-persistent /home/amnesia
- Given I have started Tails from DVD without network and logged in
- And I copy "/usr/share/cups/data/default-testpage.pdf" to "/home/amnesia" as user "amnesia"
- When I open "/home/amnesia/default-testpage.pdf" with Evince
- Then I see "CupsTestPage.png" after at most 20 seconds
- And I can print the current document to "/home/amnesia/output.pdf"
-
- Scenario: I cannot view a PDF file stored in non-persistent /home/amnesia/.gnupg
- Given I have started Tails from DVD without network and logged in
- And I copy "/usr/share/cups/data/default-testpage.pdf" to "/home/amnesia/.gnupg" as user "amnesia"
- Then the file "/home/amnesia/.gnupg/default-testpage.pdf" exists
- And the file "/lib/live/mount/overlay/home/amnesia/.gnupg/default-testpage.pdf" exists
- And the file "/live/overlay/home/amnesia/.gnupg/default-testpage.pdf" exists
- Given I start monitoring the AppArmor log of "/usr/bin/evince"
- When I try to open "/home/amnesia/.gnupg/default-testpage.pdf" with Evince
- Then I see "EvinceUnableToOpen.png" after at most 10 seconds
- And AppArmor has denied "/usr/bin/evince" from opening "/home/amnesia/.gnupg/default-testpage.pdf"
- When I close Evince
- Given I restart monitoring the AppArmor log of "/usr/bin/evince"
- When I try to open "/lib/live/mount/overlay/home/amnesia/.gnupg/default-testpage.pdf" with Evince
- Then I see "EvinceUnableToOpen.png" after at most 10 seconds
- And AppArmor has denied "/usr/bin/evince" from opening "/lib/live/mount/overlay/home/amnesia/.gnupg/default-testpage.pdf"
- When I close Evince
- Given I restart monitoring the AppArmor log of "/usr/bin/evince"
- When I try to open "/live/overlay/home/amnesia/.gnupg/default-testpage.pdf" with Evince
- Then I see "EvinceUnableToOpen.png" after at most 10 seconds
- # Due to our AppArmor aliases, /live/overlay will be treated
- # as /lib/live/mount/overlay.
- And AppArmor has denied "/usr/bin/evince" from opening "/lib/live/mount/overlay/home/amnesia/.gnupg/default-testpage.pdf"
-
- #10720: Tails Installer freezes on Jenkins
- @fragile
- Scenario: I can view and print a PDF file stored in persistent /home/amnesia/Persistent
- Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
- And I copy "/usr/share/cups/data/default-testpage.pdf" to "/home/amnesia/Persistent" as user "amnesia"
- Then the file "/home/amnesia/Persistent/default-testpage.pdf" exists
- When I open "/home/amnesia/Persistent/default-testpage.pdf" with Evince
- Then I see "CupsTestPage.png" after at most 20 seconds
- And I can print the current document to "/home/amnesia/Persistent/output.pdf"
-
- #10720: Tails Installer freezes on Jenkins
- @fragile
- Scenario: I cannot view a PDF file stored in persistent /home/amnesia/.gnupg
- Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
- And I copy "/usr/share/cups/data/default-testpage.pdf" to "/home/amnesia/.gnupg" as user "amnesia"
- Then the file "/home/amnesia/.gnupg/default-testpage.pdf" exists
- Given I start monitoring the AppArmor log of "/usr/bin/evince"
- And I try to open "/home/amnesia/.gnupg/default-testpage.pdf" with Evince
- Then I see "EvinceUnableToOpen.png" after at most 10 seconds
- And AppArmor has denied "/usr/bin/evince" from opening "/home/amnesia/.gnupg/default-testpage.pdf"
diff --git a/features/icedove.feature b/features/icedove.feature
deleted file mode 100644
index e05f024c..00000000
--- a/features/icedove.feature
+++ /dev/null
@@ -1,39 +0,0 @@
-@product @check_tor_leaks @fragile
-Feature: Icedove email client
- As a Tails user
- I may want to use an email client
-
- Background:
- Given I have started Tails from DVD and logged in and the network is connected
- When I start "Icedove" via the GNOME "Internet" applications menu
- And Icedove has started
- And I have not configured an email account
- Then I am prompted to setup an email account
-
- Scenario: Icedove defaults to using IMAP
- Then IMAP is the default protocol
-
- Scenario: Adblock is not enabled within Icedove
- Given I cancel setting up an email account
- When I open Icedove's Add-ons Manager
- And I click the extensions tab
- Then I see that Adblock is not installed in Icedove
-
- Scenario: Enigmail is configured to use the correct keyserver
- Given I cancel setting up an email account
- And I go into Enigmail's preferences
- When I click Enigmail's keyserver tab
- Then I see that Enigmail is configured to use the correct keyserver
- When I click Enigmail's advanced tab
- Then I see that Enigmail is configured to use the correct SOCKS proxy
-
- Scenario: Torbirdy is configured to use Tor
- Given I cancel setting up an email account
- And I open Torbirdy's preferences
- Then I see that Torbirdy is configured to use Tor
-
- Scenario: Icedove will work over Tor
- Given I cancel setting up an email account
- And I open Torbirdy's preferences
- When I test Torbirdy's proxy settings
- Then Torbirdy's proxy test is successful
diff --git a/features/localization.feature b/features/localization.feature
deleted file mode 100644
index f533addf..00000000
--- a/features/localization.feature
+++ /dev/null
@@ -1,19 +0,0 @@
-@product @fragile
-Feature: Localization
- As a Tails user
- I want Tails to be localized in my native language
- And various Tails features should still work
-
- @doc
- Scenario: The Report an Error launcher will open the support documentation in supported non-English locales
- Given I have started Tails from DVD without network and stopped at Tails Greeter's login screen
- And the network is plugged
- And I log in to a new session in German
- And Tails seems to have booted normally
- And Tor is ready
- When I double-click the Report an Error launcher on the desktop
- Then the support documentation page opens in Tor Browser
-
- Scenario: The Unsafe Browser can be used in all languages supported in Tails
- Given I have started Tails from DVD and logged in and the network is connected
- Then the Unsafe Browser works in all supported languages
diff --git a/features/mac_spoofing.feature b/features/mac_spoofing.feature
deleted file mode 100644
index 57773721..00000000
--- a/features/mac_spoofing.feature
+++ /dev/null
@@ -1,71 +0,0 @@
-@product
-Feature: Spoofing MAC addresses
- In order to not reveal information about the physical location
- As a Tails user
- I want to be able to control whether my network devices MAC addresses should be spoofed
- And I want this feature to fail safe and notify me in case of errors
-
- Background:
- Given I have started Tails from DVD without network and stopped at Tails Greeter's login screen
- And I capture all network traffic
- And the network is plugged
-
- @fragile
- Scenario: MAC address spoofing is disabled
- When I enable more Tails Greeter options
- And I disable MAC spoofing in Tails Greeter
- And I log in to a new session
- And the Tails desktop is ready
- And Tor is ready
- Then 1 network interface is enabled
- And the network device has its default MAC address configured
- And the real MAC address was leaked
-
- @fragile
- Scenario: MAC address spoofing is successful
- When I log in to a new session
- And the Tails desktop is ready
- And Tor is ready
- Then 1 network interface is enabled
- And the network device has a spoofed MAC address configured
- And the real MAC address was not leaked
-
- #10774
- @fragile
- Scenario: MAC address spoofing fails and macchanger returns false
- Given macchanger will fail by not spoofing and always returns false
- When I log in to a new session
- And see the "Network card disabled" notification
- And the Tails desktop is ready
- Then no network interfaces are enabled
- And the real MAC address was not leaked
-
- #10774
- @fragile
- Scenario: MAC address spoofing fails and macchanger returns true
- Given macchanger will fail by not spoofing and always returns true
- When I log in to a new session
- And see the "Network card disabled" notification
- And the Tails desktop is ready
- Then no network interfaces are enabled
- And the real MAC address was not leaked
-
- #10774
- @fragile
- Scenario: MAC address spoofing fails and the module is not removed
- Given macchanger will fail by not spoofing and always returns true
- And no network interface modules can be unloaded
- When I log in to a new session
- And see the "All networking disabled" notification
- And the Tails desktop is ready
- Then 1 network interface is enabled
- But the MAC spoofing panic mode disabled networking
- And the real MAC address was not leaked
-
- Scenario: The MAC address is not leaked when booting Tails
- Given a computer
- And I capture all network traffic
- When I start the computer
- Then the computer boots Tails
- And no network interfaces are enabled
- And the real MAC address was not leaked
diff --git a/features/mat.feature b/features/mat.feature
deleted file mode 100644
index e492b0fb..00000000
--- a/features/mat.feature
+++ /dev/null
@@ -1,13 +0,0 @@
-@product
-Feature: Metadata Anonymization Toolkit
- As a Tails user
- I want to be able to remove leaky metadata from documents and media files
-
- # In this feature we cannot restore from snapshots since it's
- # incompatible with filesystem shares.
-
- Scenario: MAT can clean a PDF file
- Given a computer
- And I setup a filesystem share containing a sample PDF
- And I start Tails from DVD with network unplugged and I login
- Then MAT can clean some sample PDF file
diff --git a/features/persistence.feature b/features/persistence.feature
deleted file mode 100644
index 13f0af70..00000000
--- a/features/persistence.feature
+++ /dev/null
@@ -1,55 +0,0 @@
-#10720: Tails Installer freezes on Jenkins
-@product @fragile
-Feature: Tails persistence
- As a Tails user
- I want to use Tails persistence feature
-
- Scenario: Booting Tails from a USB drive with a disabled persistent partition
- Given I have started Tails without network from a USB drive with a persistent partition and stopped at Tails Greeter's login screen
- When I log in to a new session
- Then Tails seems to have booted normally
- And Tails is running from USB drive "__internal"
- And persistence is disabled
- But a Tails persistence partition exists on USB drive "__internal"
-
- Scenario: Booting Tails from a USB drive with an enabled persistent partition
- Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
- Then Tails is running from USB drive "__internal"
- And all persistence presets are enabled
- And all persistent directories have safe access rights
-
- @fragile
- Scenario: Writing files first to a read/write-enabled persistent partition, and then to a read-only-enabled persistent partition
- Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
- And the network is plugged
- And Tor is ready
- And I take note of which persistence presets are available
- When I write some files expected to persist
- And I add a wired DHCP NetworkManager connection called "persistent-con"
- And I shutdown Tails and wait for the computer to power off
- # XXX: The next step succeeds (and the --debug output confirms that it's actually looking for the files) but will fail in a subsequent scenario restoring the same snapshot. This exactly what we want, but why does it work? What is guestfs's behaviour when qcow2 internal snapshots are involved?
- Then only the expected files are present on the persistence partition on USB drive "__internal"
- Given I start Tails from USB drive "__internal" with network unplugged and I login with read-only persistence enabled
- And the network is plugged
- And Tor is ready
- Then Tails is running from USB drive "__internal"
- And the boot device has safe access rights
- And all persistence presets are enabled
- And I switch to the "persistent-con" NetworkManager connection
- And there is no GNOME bookmark for the persistent Tor Browser directory
- And I write some files not expected to persist
- And I remove some files expected to persist
- And I take note of which persistence presets are available
- And I shutdown Tails and wait for the computer to power off
- Then only the expected files are present on the persistence partition on USB drive "__internal"
-
- Scenario: Deleting a Tails persistent partition
- Given I have started Tails without network from a USB drive with a persistent partition and stopped at Tails Greeter's login screen
- And I log in to a new session
- Then Tails is running from USB drive "__internal"
- And the boot device has safe access rights
- And persistence is disabled
- But a Tails persistence partition exists on USB drive "__internal"
- And all notifications have disappeared
- When I delete the persistent partition
- Then there is no persistence partition on USB drive "__internal"
diff --git a/features/pidgin.feature b/features/pidgin.feature
deleted file mode 100644
index cbfddbe3..00000000
--- a/features/pidgin.feature
+++ /dev/null
@@ -1,135 +0,0 @@
-#10497: wait_until_tor_is_working
-@product @fragile
-Feature: Chatting anonymously using Pidgin
- As a Tails user
- when I chat using Pidgin
- I should be able to use OTR
- And I should be able to persist my Pidgin configuration
- And AppArmor should prevent Pidgin from doing dangerous things
- And all Internet traffic should flow only through Tor
-
- @check_tor_leaks
- Scenario: Chatting with some friend over XMPP
- Given I have started Tails from DVD and logged in and the network is connected
- When I start Pidgin through the GNOME menu
- Then I see Pidgin's account manager window
- When I create my XMPP account
- And I close Pidgin's account manager window
- Then Pidgin automatically enables my XMPP account
- Given my XMPP friend goes online
- When I start a conversation with my friend
- And I say something to my friend
- Then I receive a response from my friend
-
- @check_tor_leaks
- Scenario: Chatting with some friend over XMPP in a multi-user chat
- Given I have started Tails from DVD and logged in and the network is connected
- When I start Pidgin through the GNOME menu
- Then I see Pidgin's account manager window
- When I create my XMPP account
- And I close Pidgin's account manager window
- Then Pidgin automatically enables my XMPP account
- When I join some empty multi-user chat
- And I clear the multi-user chat's scrollback
- And my XMPP friend goes online and joins the multi-user chat
- Then I can see that my friend joined the multi-user chat
- And I say something to my friend in the multi-user chat
- Then I receive a response from my friend in the multi-user chat
-
- @check_tor_leaks
- Scenario: Chatting with some friend over XMPP and with OTR
- Given I have started Tails from DVD and logged in and the network is connected
- When I start Pidgin through the GNOME menu
- Then I see Pidgin's account manager window
- When I create my XMPP account
- And I close Pidgin's account manager window
- Then Pidgin automatically enables my XMPP account
- Given my XMPP friend goes online
- When I start a conversation with my friend
- And I start an OTR session with my friend
- Then Pidgin automatically generates an OTR key
- And an OTR session was successfully started with my friend
- When I say something to my friend
- Then I receive a response from my friend
-
- # 10376 - "the Tor Browser loads the (startup page|Tails roadmap)" step is fragile
- # 10443 - OFTC tests are fragile
- @check_tor_leaks @fragile
- Scenario: Connecting to the #tails IRC channel with the pre-configured account
- Given I have started Tails from DVD and logged in and the network is connected
- And Pidgin has the expected accounts configured with random nicknames
- When I start Pidgin through the GNOME menu
- Then I see Pidgin's account manager window
- When I activate the "irc.oftc.net" Pidgin account
- And I close Pidgin's account manager window
- Then Pidgin successfully connects to the "irc.oftc.net" account
- And I can join the "#tails" channel on "irc.oftc.net"
- When I type "/topic"
- And I press the "ENTER" key
- Then I see the Tails roadmap URL
- When I wait 10 seconds
- And I click on the Tails roadmap URL
- Then the Tor Browser has started and loaded the Tails roadmap
- And the "irc.oftc.net" account only responds to PING and VERSION CTCP requests
-
- Scenario: Adding a certificate to Pidgin
- Given I have started Tails from DVD and logged in and the network is connected
- And I start Pidgin through the GNOME menu
- And I see Pidgin's account manager window
- And I close Pidgin's account manager window
- Then I can add a certificate from the "/home/amnesia" directory to Pidgin
-
- Scenario: Failing to add a certificate to Pidgin
- Given I have started Tails from DVD and logged in and the network is connected
- When I start Pidgin through the GNOME menu
- And I see Pidgin's account manager window
- And I close Pidgin's account manager window
- Then I cannot add a certificate from the "/home/amnesia/.gnupg" directory to Pidgin
- When I close Pidgin's certificate import failure dialog
- And I close Pidgin's certificate manager
- Then I cannot add a certificate from the "/lib/live/mount/overlay/home/amnesia/.gnupg" directory to Pidgin
- When I close Pidgin's certificate import failure dialog
- And I close Pidgin's certificate manager
- Then I cannot add a certificate from the "/live/overlay/home/amnesia/.gnupg" directory to Pidgin
-
- #10443 - OFTC tests are fragile
- #10720: Tails Installer freezes on Jenkins
- @check_tor_leaks @fragile
- Scenario: Using a persistent Pidgin configuration
- Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
- And Pidgin has the expected accounts configured with random nicknames
- And the network is plugged
- And Tor is ready
- And available upgrades have been checked
- And all notifications have disappeared
- When I start Pidgin through the GNOME menu
- Then I see Pidgin's account manager window
- # And I generate an OTR key for the default Pidgin account
- And I take note of the configured Pidgin accounts
- # And I take note of the OTR key for Pidgin's "irc.oftc.net" account
- And I shutdown Tails and wait for the computer to power off
- Given a computer
- And I start Tails from USB drive "__internal" and I login with persistence enabled
- And Pidgin has the expected persistent accounts configured
- # And Pidgin has the expected persistent OTR keys
- When I start Pidgin through the GNOME menu
- Then I see Pidgin's account manager window
- When I activate the "irc.oftc.net" Pidgin account
- And I close Pidgin's account manager window
- Then Pidgin successfully connects to the "irc.oftc.net" account
- And I can join the "#tails" channel on "irc.oftc.net"
- # Exercise Pidgin AppArmor profile with persistence enabled.
- # This should really be in dedicated scenarios, but it would be
- # too costly to set up the virtual USB drive with persistence more
- # than once in this feature.
- Given I start monitoring the AppArmor log of "/usr/bin/pidgin"
- Then I cannot add a certificate from the "/home/amnesia/.gnupg" directory to Pidgin
- And AppArmor has denied "/usr/bin/pidgin" from opening "/home/amnesia/.gnupg/test.crt"
- When I close Pidgin's certificate import failure dialog
- And I close Pidgin's certificate manager
- Given I restart monitoring the AppArmor log of "/usr/bin/pidgin"
- Then I cannot add a certificate from the "/live/persistence/TailsData_unlocked/gnupg" directory to Pidgin
- And AppArmor has denied "/usr/bin/pidgin" from opening "/live/persistence/TailsData_unlocked/gnupg/test.crt"
- When I close Pidgin's certificate import failure dialog
- And I close Pidgin's certificate manager
- Then I can add a certificate from the "/home/amnesia" directory to Pidgin
diff --git a/features/po.feature b/features/po.feature
deleted file mode 100644
index 91b8fd00..00000000
--- a/features/po.feature
+++ /dev/null
@@ -1,9 +0,0 @@
-@source
-Feature: check PO files
- As a Tails developer, when I build Tails, I want to make sure
- the PO files in use are correct.
-
- @doc
- Scenario: check all PO files
- Given I am in the Git branch being tested
- Then all the PO files should be correct
diff --git a/features/root_access_control.feature b/features/root_access_control.feature
deleted file mode 100644
index 569dd2a8..00000000
--- a/features/root_access_control.feature
+++ /dev/null
@@ -1,33 +0,0 @@
-@product
-Feature: Root access control enforcement
- As a Tails user
- when I set an administration password in Tails Greeter
- I can use the password for attaining administrative privileges.
- But when I do not set an administration password
- I should not be able to attain administration privileges at all.
-
- Scenario: If an administrative password is set in Tails Greeter the live user should be able to run arbitrary commands with administrative privileges.
- Given I set sudo password "asdf"
- And I log in to a new session
- And Tails Greeter has dealt with the sudo password
- Then I should be able to run administration commands as the live user
-
- Scenario: If no administrative password is set in Tails Greeter the live user should not be able to run arbitrary commands administrative privileges.
- Given I have started Tails from DVD without network and logged in
- And Tails Greeter has dealt with the sudo password
- Then I should not be able to run administration commands as the live user with the "" password
- And I should not be able to run administration commands as the live user with the "amnesia" password
- And I should not be able to run administration commands as the live user with the "live" password
-
- Scenario: If an administrative password is set in Tails Greeter the live user should be able to get administrative privileges through PolicyKit
- Given I set sudo password "asdf"
- And I log in to a new session
- And Tails Greeter has dealt with the sudo password
- And GNOME has started
- And running a command as root with pkexec requires PolicyKit administrator privileges
- Then I should be able to run a command as root with pkexec
-
- Scenario: If no administrative password is set in Tails Greeter the live user should not be able to get administrative privileges through PolicyKit with the standard passwords.
- Given I have started Tails from DVD without network and logged in
- And running a command as root with pkexec requires PolicyKit administrator privileges
- Then I should not be able to run a command as root with pkexec and the standard passwords
diff --git a/features/ssh.feature b/features/ssh.feature
deleted file mode 100644
index 85289992..00000000
--- a/features/ssh.feature
+++ /dev/null
@@ -1,31 +0,0 @@
-#10497: wait_until_tor_is_working
-#10498: SSH tests are fragile
-@product @fragile
-Feature: Logging in via SSH
- As a Tails user
- When I connect to SSH servers on the Internet
- all Internet traffic should flow only through Tor
-
- Background:
- Given I have started Tails from DVD and logged in and the network is connected
-
- @check_tor_leaks
- Scenario: Connecting to an SSH server on the Internet
- Given I have the SSH key pair for an SSH server
- When I connect to an SSH server on the Internet
- And I verify the SSH fingerprint for the SSH server
- Then I have sucessfully logged into the SSH server
-
- @check_tor_leaks
- Scenario: Connecting to an SSH server on the LAN
- Given I have the SSH key pair for an SSH server
- And an SSH server is running on the LAN
- When I connect to an SSH server on the LAN
- Then I am prompted to verify the SSH fingerprint for the SSH server
-
- @check_tor_leaks
- Scenario: Connecting to an SFTP server on the Internet using the GNOME "Connect to Server" feature
- Given I have the SSH key pair for an SFTP server
- When I connect to an SFTP server on the Internet
- And I verify the SSH fingerprint for the SFTP server
- Then I successfully connect to the SFTP server
diff --git a/features/time_syncing.feature b/features/time_syncing.feature
deleted file mode 100644
index 69a0c9e2..00000000
--- a/features/time_syncing.feature
+++ /dev/null
@@ -1,129 +0,0 @@
-@product @check_tor_leaks
-Feature: Time syncing
- As a Tails user
- I want Tor to work properly
- And for that I need a reasonably accurate system clock
-
- #10497: wait_until_tor_is_working
- @fragile
- Scenario: Clock with host's time
- Given I have started Tails from DVD without network and logged in
- When the network is plugged
- And Tor is ready
- Then Tails clock is less than 5 minutes incorrect
-
- #10497: wait_until_tor_is_working
- @fragile
- Scenario: Clock with host's time in bridge mode
- Given I have started Tails from DVD without network and logged in with bridge mode enabled
- When the network is plugged
- And the Tor Launcher autostarts
- And I configure some Bridge pluggable transports in Tor Launcher
- And Tor is ready
- Then Tails clock is less than 5 minutes incorrect
-
- #10497: wait_until_tor_is_working
- @fragile
- Scenario: Clock is one day in the past
- Given I have started Tails from DVD without network and logged in
- When I bump the system time with "-1 day"
- And the network is plugged
- And Tor is ready
- Then Tails clock is less than 5 minutes incorrect
-
- #10497: wait_until_tor_is_working
- @fragile
- Scenario: Clock is one day in the past in bridge mode
- Given I have started Tails from DVD without network and logged in with bridge mode enabled
- When I bump the system time with "-1 day"
- And the network is plugged
- And the Tor Launcher autostarts
- And I configure some Bridge pluggable transports in Tor Launcher
- And Tor is ready
- Then Tails clock is less than 5 minutes incorrect
-
- #10497: wait_until_tor_is_working
- @fragile
- Scenario: Clock is way in the past
- Given I have started Tails from DVD without network and logged in
- # 13 weeks will span over two Tails release cycles.
- When I bump the system time with "-13 weeks"
- And the network is plugged
- And Tor is ready
- Then Tails clock is less than 5 minutes incorrect
-
- #10497: wait_until_tor_is_working
- @fragile
- Scenario: Clock way in the past in bridge mode
- Given I have started Tails from DVD without network and logged in with bridge mode enabled
- When I bump the system time with "-6 weeks"
- And the network is plugged
- And the Tor Launcher autostarts
- And I configure some Bridge pluggable transports in Tor Launcher
- And Tor is ready
- Then Tails clock is less than 5 minutes incorrect
-
- #10497: wait_until_tor_is_working
- #10440: Time syncing tests are fragile
- @fragile
- Scenario: Clock is one day in the future
- Given I have started Tails from DVD without network and logged in
- When I bump the system time with "+1 day"
- And the network is plugged
- And Tor is ready
- Then Tails clock is less than 5 minutes incorrect
-
- #10497: wait_until_tor_is_working
- @fragile
- Scenario: Clock is one day in the future in bridge mode
- Given I have started Tails from DVD without network and logged in with bridge mode enabled
- When I bump the system time with "+1 day"
- And the network is plugged
- And the Tor Launcher autostarts
- And I configure some Bridge pluggable transports in Tor Launcher
- And Tor is ready
- Then Tails clock is less than 5 minutes incorrect
-
- #10497: wait_until_tor_is_working
- #10440: Time syncing tests are fragile
- @fragile
- Scenario: Clock way in the future
- Given I have started Tails from DVD without network and logged in
- When I set the system time to "01 Jan 2020 12:34:56"
- And the network is plugged
- And Tor is ready
- Then Tails clock is less than 5 minutes incorrect
-
- #10497: wait_until_tor_is_working
- #10440: Time syncing tests are fragile
- @fragile
- Scenario: Clock way in the future in bridge mode
- Given I have started Tails from DVD without network and logged in with bridge mode enabled
- When I set the system time to "01 Jan 2020 12:34:56"
- And the network is plugged
- And the Tor Launcher autostarts
- And I configure some Bridge pluggable transports in Tor Launcher
- And Tor is ready
- Then Tails clock is less than 5 minutes incorrect
-
-Scenario: The system time is not synced to the hardware clock
- Given I have started Tails from DVD without network and logged in
- When I bump the system time with "-15 days"
- And I warm reboot the computer
- And the computer reboots Tails
- Then Tails' hardware clock is close to the host system's time
-
- Scenario: Anti-test: Changes to the hardware clock are kept when rebooting
- Given I have started Tails from DVD without network and logged in
- When I bump the hardware clock's time with "-15 days"
- And I warm reboot the computer
- And the computer reboots Tails
- Then the hardware clock is still off by "-15 days"
-
- Scenario: Boot with a hardware clock set way in the past and make sure that Tails sets the clock to the build date
- Given a computer
- And the network is unplugged
- And the hardware clock is set to "01 Jan 2000 12:34:56"
- And I start the computer
- And the computer boots Tails
- Then the system clock is just past Tails' build date
diff --git a/features/tor_bridges.feature b/features/tor_bridges.feature
deleted file mode 100644
index b5277ca7..00000000
--- a/features/tor_bridges.feature
+++ /dev/null
@@ -1,36 +0,0 @@
-@product @fragile
-Feature: Using Tails with Tor pluggable transports
- As a Tails user
- I want to circumvent censorship of Tor by using Tor pluggable transports
- And avoid connecting directly to the Tor Network
-
- Background:
- Given I have started Tails from DVD without network and logged in with bridge mode enabled
- And I capture all network traffic
- When the network is plugged
- Then the Tor Launcher autostarts
- And the Tor Launcher uses all expected TBB shared libraries
-
- Scenario: Using bridges
- When I configure some Bridge pluggable transports in Tor Launcher
- Then Tor is ready
- And available upgrades have been checked
- And all Internet traffic has only flowed through the configured pluggable transports
-
- Scenario: Using obfs2 pluggable transports
- When I configure some obfs2 pluggable transports in Tor Launcher
- Then Tor is ready
- And available upgrades have been checked
- And all Internet traffic has only flowed through the configured pluggable transports
-
- Scenario: Using obfs3 pluggable transports
- When I configure some obfs3 pluggable transports in Tor Launcher
- Then Tor is ready
- And available upgrades have been checked
- And all Internet traffic has only flowed through the configured pluggable transports
-
- Scenario: Using obfs4 pluggable transports
- When I configure some obfs4 pluggable transports in Tor Launcher
- Then Tor is ready
- And available upgrades have been checked
- And all Internet traffic has only flowed through the configured pluggable transports
diff --git a/features/tor_enforcement.feature b/features/tor_enforcement.feature
deleted file mode 100644
index 164220a2..00000000
--- a/features/tor_enforcement.feature
+++ /dev/null
@@ -1,76 +0,0 @@
-#10497: wait_until_tor_is_working
-@product @fragile
-Feature: The Tor enforcement is effective
- As a Tails user
- I want all direct Internet connections I do by mistake or applications do by misconfiguration or buggy leaks to be blocked
- And as a Tails developer
- I want to ensure that the automated test suite detects firewall leaks reliably
-
- Scenario: Tails' Tor binary is configured to use the expected Tor authorities
- Given I have started Tails from DVD and logged in and the network is connected
- Then the Tor binary is configured to use the expected Tor authorities
-
- Scenario: The firewall configuration is very restrictive
- Given I have started Tails from DVD and logged in and the network is connected
- Then the firewall's policy is to drop all IPv4 traffic
- And the firewall is configured to only allow the clearnet and debian-tor users to connect directly to the Internet over IPv4
- And the firewall's NAT rules only redirect traffic for Tor's TransPort and DNSPort
- And the firewall is configured to block all external IPv6 traffic
-
- @fragile
- Scenario: Anti test: Detecting IPv4 TCP leaks from the Unsafe Browser with the firewall leak detector
- Given I have started Tails from DVD and logged in and the network is connected
- And I capture all network traffic
- When I successfully start the Unsafe Browser
- And I open the address "https://check.torproject.org" in the Unsafe Browser
- And I see "UnsafeBrowserTorCheckFail.png" after at most 60 seconds
- Then the firewall leak detector has detected IPv4 TCP leaks
-
- Scenario: Anti test: Detecting IPv4 TCP leaks of TCP DNS lookups with the firewall leak detector
- Given I have started Tails from DVD and logged in and the network is connected
- And I capture all network traffic
- And I disable Tails' firewall
- When I do a TCP DNS lookup of "torproject.org"
- Then the firewall leak detector has detected IPv4 TCP leaks
-
- Scenario: Anti test: Detecting IPv4 non-TCP leaks (UDP) of UDP DNS lookups with the firewall leak detector
- Given I have started Tails from DVD and logged in and the network is connected
- And I capture all network traffic
- And I disable Tails' firewall
- When I do a UDP DNS lookup of "torproject.org"
- Then the firewall leak detector has detected IPv4 non-TCP leaks
-
- Scenario: Anti test: Detecting IPv4 non-TCP (ICMP) leaks of ping with the firewall leak detector
- Given I have started Tails from DVD and logged in and the network is connected
- And I capture all network traffic
- And I disable Tails' firewall
- When I send some ICMP pings
- Then the firewall leak detector has detected IPv4 non-TCP leaks
-
- @check_tor_leaks
- Scenario: The Tor enforcement is effective at blocking untorified TCP connection attempts
- Given I have started Tails from DVD and logged in and the network is connected
- When I open an untorified TCP connections to 1.2.3.4 on port 42 that is expected to fail
- Then the untorified connection fails
- And the untorified connection is logged as dropped by the firewall
-
- @check_tor_leaks
- Scenario: The Tor enforcement is effective at blocking untorified UDP connection attempts
- Given I have started Tails from DVD and logged in and the network is connected
- When I open an untorified UDP connections to 1.2.3.4 on port 42 that is expected to fail
- Then the untorified connection fails
- And the untorified connection is logged as dropped by the firewall
-
- @check_tor_leaks @fragile
- Scenario: The Tor enforcement is effective at blocking untorified ICMP connection attempts
- Given I have started Tails from DVD and logged in and the network is connected
- When I open an untorified ICMP connections to 1.2.3.4 that is expected to fail
- Then the untorified connection fails
- And the untorified connection is logged as dropped by the firewall
-
- Scenario: The system DNS is always set up to use Tor's DNSPort
- Given I have started Tails from DVD without network and logged in
- And the system DNS is using the local DNS resolver
- And the network is plugged
- And Tor is ready
- Then the system DNS is still using the local DNS resolver
diff --git a/features/tor_stream_isolation.feature b/features/tor_stream_isolation.feature
deleted file mode 100644
index c51c6410..00000000
--- a/features/tor_stream_isolation.feature
+++ /dev/null
@@ -1,62 +0,0 @@
-#10497: wait_until_tor_is_working
-@product @check_tor_leaks @fragile
-Feature: Tor stream isolation is effective
- As a Tails user
- I want my Torified sessions to be sensibly isolated from each other to prevent identity correlation
-
- Background:
- Given I have started Tails from DVD and logged in and the network is connected
-
- Scenario: tails-security-check is using the Tails-specific SocksPort
- When I monitor the network connections of tails-security-check
- And I re-run tails-security-check
- Then I see that tails-security-check is properly stream isolated
-
- Scenario: htpdate is using the Tails-specific SocksPort
- When I monitor the network connections of htpdate
- And I re-run htpdate
- Then I see that htpdate is properly stream isolated
-
- Scenario: tails-upgrade-frontend-wrapper is using the Tails-specific SocksPort
- When I monitor the network connections of tails-upgrade-frontend-wrapper
- And I re-run tails-upgrade-frontend-wrapper
- Then I see that tails-upgrade-frontend-wrapper is properly stream isolated
-
- Scenario: The Tor Browser is using the web browser-specific SocksPort
- When I monitor the network connections of Tor Browser
- And I start the Tor Browser
- And the Tor Browser has started and loaded the startup page
- Then I see that Tor Browser is properly stream isolated
-
- @fragile
- Scenario: Gobby is using the default SocksPort
- When I monitor the network connections of Gobby
- And I start "Gobby" via the GNOME "Internet" applications menu
- And I connect Gobby to "gobby.debian.org"
- Then I see that Gobby is properly stream isolated
-
- Scenario: SSH is using the default SocksPort
- When I monitor the network connections of SSH
- And I run "ssh lizard.tails.boum.org" in GNOME Terminal
- And I see "SSHAuthVerification.png" after at most 60 seconds
- Then I see that SSH is properly stream isolated
-
- Scenario: whois lookups use the default SocksPort
- When I monitor the network connections of whois
- And I query the whois directory service for "boum.org"
- And the whois command is successful
- Then I see that whois is properly stream isolated
-
- @fragile
- Scenario: Explicitly torify-wrapped applications are using the default SocksPort
- When I monitor the network connections of Gobby
- And I run "torify /usr/bin/gobby-0.5" in GNOME Terminal
- And I connect Gobby to "gobby.debian.org"
- Then I see that Gobby is properly stream isolated
-
- @fragile
- Scenario: Explicitly torsocks-wrapped applications are using the default SocksPort
- When I monitor the network connections of Gobby
- And I run "torsocks /usr/bin/gobby-0.5" in GNOME Terminal
- And I connect Gobby to "gobby.debian.org"
- Then I see that Gobby is properly stream isolated
diff --git a/features/torified_browsing.feature b/features/torified_browsing.feature
deleted file mode 100644
index 78a40135..00000000
--- a/features/torified_browsing.feature
+++ /dev/null
@@ -1,172 +0,0 @@
-#10376: The "the Tor Browser loads the (startup page|Tails roadmap)" step is fragile
-#10497: wait_until_tor_is_working
-@product @fragile
-Feature: Browsing the web using the Tor Browser
- As a Tails user
- when I browse the web using the Tor Browser
- all Internet traffic should flow only through Tor
-
- Scenario: The Tor Browser cannot access the LAN
- Given I have started Tails from DVD and logged in and the network is connected
- And a web server is running on the LAN
- And I capture all network traffic
- When I start the Tor Browser
- And the Tor Browser has started and loaded the startup page
- And I open a page on the LAN web server in the Tor Browser
- Then I see "TorBrowserUnableToConnect.png" after at most 20 seconds
- And no traffic has flowed to the LAN
-
- @check_tor_leaks
- Scenario: The Tor Browser directory is usable
- Given I have started Tails from DVD and logged in and the network is connected
- Then the amnesiac Tor Browser directory exists
- And there is a GNOME bookmark for the amnesiac Tor Browser directory
- And the persistent Tor Browser directory does not exist
- When I start the Tor Browser
- And the Tor Browser has started and loaded the startup page
- Then I can save the current page as "index.html" to the default downloads directory
- And I can print the current page as "output.pdf" to the default downloads directory
-
- @check_tor_leaks @fragile
- Scenario: Downloading files with the Tor Browser
- Given I have started Tails from DVD and logged in and the network is connected
- When I start the Tor Browser
- Then the Tor Browser has started and loaded the startup page
- When I download some file in the Tor Browser
- Then I get the browser download dialog
- When I save the file to the default Tor Browser download directory
- Then the file is saved to the default Tor Browser download directory
-
- @check_tor_leaks @fragile
- Scenario: Playing HTML5 audio
- Given I have started Tails from DVD and logged in and the network is connected
- When I start the Tor Browser
- And the Tor Browser has started and loaded the startup page
- And no application is playing audio
- And I open the address "http://www.terrillthompson.com/tests/html5-audio.html" in the Tor Browser
- And I click the HTML5 play button
- And 1 application is playing audio after 10 seconds
-
- @check_tor_leaks @fragile
- Scenario: Watching a WebM video
- Given I have started Tails from DVD and logged in and the network is connected
- When I start the Tor Browser
- And the Tor Browser has started and loaded the startup page
- And I open the address "https://webm.html5.org/test.webm" in the Tor Browser
- And I click the blocked video icon
- And I see "TorBrowserNoScriptTemporarilyAllowDialog.png" after at most 30 seconds
- And I accept to temporarily allow playing this video
- Then I see "TorBrowserSampleRemoteWebMVideoFrame.png" after at most 180 seconds
-
- Scenario: I can view a file stored in "~/Tor Browser" but not in ~/.gnupg
- Given I have started Tails from DVD and logged in and the network is connected
- And I copy "/usr/share/synaptic/html/index.html" to "/home/amnesia/Tor Browser/synaptic.html" as user "amnesia"
- And I copy "/usr/share/synaptic/html/index.html" to "/home/amnesia/.gnupg/synaptic.html" as user "amnesia"
- And I copy "/usr/share/synaptic/html/index.html" to "/tmp/synaptic.html" as user "amnesia"
- Then the file "/home/amnesia/.gnupg/synaptic.html" exists
- And the file "/lib/live/mount/overlay/home/amnesia/.gnupg/synaptic.html" exists
- And the file "/live/overlay/home/amnesia/.gnupg/synaptic.html" exists
- And the file "/tmp/synaptic.html" exists
- Given I start monitoring the AppArmor log of "/usr/local/lib/tor-browser/firefox"
- When I start the Tor Browser
- And the Tor Browser has started and loaded the startup page
- And I open the address "file:///home/amnesia/Tor Browser/synaptic.html" in the Tor Browser
- Then I see "TorBrowserSynapticManual.png" after at most 5 seconds
- And AppArmor has not denied "/usr/local/lib/tor-browser/firefox" from opening "/home/amnesia/Tor Browser/synaptic.html"
- Given I restart monitoring the AppArmor log of "/usr/local/lib/tor-browser/firefox"
- When I open the address "file:///home/amnesia/.gnupg/synaptic.html" in the Tor Browser
- Then I do not see "TorBrowserSynapticManual.png" after at most 5 seconds
- And AppArmor has denied "/usr/local/lib/tor-browser/firefox" from opening "/home/amnesia/.gnupg/synaptic.html"
- Given I restart monitoring the AppArmor log of "/usr/local/lib/tor-browser/firefox"
- When I open the address "file:///lib/live/mount/overlay/home/amnesia/.gnupg/synaptic.html" in the Tor Browser
- Then I do not see "TorBrowserSynapticManual.png" after at most 5 seconds
- And AppArmor has denied "/usr/local/lib/tor-browser/firefox" from opening "/lib/live/mount/overlay/home/amnesia/.gnupg/synaptic.html"
- Given I restart monitoring the AppArmor log of "/usr/local/lib/tor-browser/firefox"
- When I open the address "file:///live/overlay/home/amnesia/.gnupg/synaptic.html" in the Tor Browser
- Then I do not see "TorBrowserSynapticManual.png" after at most 5 seconds
- # Due to our AppArmor aliases, /live/overlay will be treated
- # as /lib/live/mount/overlay.
- And AppArmor has denied "/usr/local/lib/tor-browser/firefox" from opening "/lib/live/mount/overlay/home/amnesia/.gnupg/synaptic.html"
- # We do not get any AppArmor log for when access to files in /tmp is denied
- # since we explictly override (commit 51c0060) the rules (from the user-tmp
- # abstration) that would otherwise allow it, and we do so with "deny", which
- # also specifies "noaudit". We could explicitly specify "audit deny" and
- # then have logs, but it could be a problem when we set up desktop
- # notifications for AppArmor denials (#9337).
- When I open the address "file:///tmp/synaptic.html" in the Tor Browser
- Then I do not see "TorBrowserSynapticManual.png" after at most 5 seconds
-
- @doc
- Scenario: The "Tails documentation" link on the Desktop works
- Given I have started Tails from DVD and logged in and the network is connected
- When I double-click on the "Tails documentation" link on the Desktop
- Then the Tor Browser has started
- And I see "TailsOfflineDocHomepage.png" after at most 10 seconds
-
- Scenario: The Tor Browser uses TBB's shared libraries
- Given I have started Tails from DVD and logged in and the network is connected
- When I start the Tor Browser
- And the Tor Browser has started
- Then the Tor Browser uses all expected TBB shared libraries
-
- @check_tor_leaks @fragile
- Scenario: Opening check.torproject.org in the Tor Browser shows the green onion and the congratulations message
- Given I have started Tails from DVD and logged in and the network is connected
- When I start the Tor Browser
- And the Tor Browser has started and loaded the startup page
- And I open the address "https://check.torproject.org" in the Tor Browser
- Then I see "TorBrowserTorCheck.png" after at most 180 seconds
-
- @check_tor_leaks @fragile
- Scenario: The Tor Browser's "New identity" feature works as expected
- Given I have started Tails from DVD and logged in and the network is connected
- When I start the Tor Browser
- And the Tor Browser has started and loaded the startup page
- And I open the address "https://check.torproject.org" in the Tor Browser
- Then I see "TorBrowserTorCheck.png" after at most 180 seconds
- When I request a new identity using Torbutton
- And I acknowledge Torbutton's New Identity confirmation prompt
- Then the Tor Browser loads the startup page
-
- Scenario: The Tor Browser should not have any plugins enabled
- Given I have started Tails from DVD and logged in and the network is connected
- When I start the Tor Browser
- And the Tor Browser has started and loaded the startup page
- Then the Tor Browser has no plugins installed
-
- #10497, #10720
- @fragile
- Scenario: The persistent Tor Browser directory is usable
- Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
- And the network is plugged
- And Tor is ready
- And available upgrades have been checked
- And all notifications have disappeared
- Then the persistent Tor Browser directory exists
- And there is a GNOME bookmark for the persistent Tor Browser directory
- When I start the Tor Browser
- And the Tor Browser has started and loaded the startup page
- And I can save the current page as "index.html" to the persistent Tor Browser directory
- When I open the address "file:///home/amnesia/Persistent/Tor Browser/index.html" in the Tor Browser
- Then I see "TorBrowserSavedStartupPage.png" after at most 10 seconds
- And I can print the current page as "output.pdf" to the persistent Tor Browser directory
-
- #10720
- @fragile
- Scenario: Persistent browser bookmarks
- Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
- And all persistence presets are enabled
- And all persistent filesystems have safe access rights
- And all persistence configuration files have safe access rights
- And all persistent directories have safe access rights
- And I start the Tor Browser in offline mode
- And the Tor Browser has started in offline mode
- And I add a bookmark to eff.org in the Tor Browser
- And I warm reboot the computer
- And the computer reboots Tails
- And I enable read-only persistence
- And I log in to a new session
- And the Tails desktop is ready
- And I start the Tor Browser in offline mode
- And the Tor Browser has started in offline mode
- Then the Tor Browser has a bookmark to eff.org
diff --git a/features/torified_git.feature b/features/torified_git.feature
deleted file mode 100644
index 04e19a53..00000000
--- a/features/torified_git.feature
+++ /dev/null
@@ -1,31 +0,0 @@
-#10497: wait_until_tor_is_working
-#10444: Git tests are fragile
-@product @check_tor_leaks @fragile
-Feature: Cloning a Git repository
- As a Tails user
- when I clone a Git repository
- all Internet traffic should flow only through Tor
-
- Background:
- Given I have started Tails from DVD and logged in and the network is connected
-
- @fragile
- Scenario: Cloning a Git repository anonymously over HTTPS
- When I run "git clone https://git-tails.immerda.ch/myprivatekeyispublic/testing" in GNOME Terminal
- Then process "git" is running within 10 seconds
- And process "git" has stopped running after at most 180 seconds
- And the Git repository "testing" has been cloned successfully
-
- Scenario: Cloning a Git repository anonymously over the Git protocol
- When I run "git clone git://git.tails.boum.org/myprivatekeyispublic/testing" in GNOME Terminal
- Then process "git" is running within 10 seconds
- And process "git" has stopped running after at most 180 seconds
- And the Git repository "testing" has been cloned successfully
-
- Scenario: Cloning git repository over SSH
- Given I have the SSH key pair for a Git repository
- When I run "git clone tails@git.tails.boum.org:myprivatekeyispublic/testing" in GNOME Terminal
- Then process "git" is running within 10 seconds
- When I verify the SSH fingerprint for the Git repository
- And process "git" has stopped running after at most 180 seconds
- Then the Git repository "testing" has been cloned successfully
diff --git a/features/torified_gnupg.feature b/features/torified_gnupg.feature
deleted file mode 100644
index 374c7ba3..00000000
--- a/features/torified_gnupg.feature
+++ /dev/null
@@ -1,53 +0,0 @@
-@product @check_tor_leaks @fragile
-Feature: Keyserver interaction with GnuPG
- As a Tails user
- when I interact with keyservers using various GnuPG tools
- the configured keyserver must be used
- and all Internet traffic should flow only through Tor.
-
- Background:
- Given I have started Tails from DVD and logged in and the network is connected
- And the "10CC5BC7" OpenPGP key is not in the live user's public keyring
-
- Scenario: Seahorse is configured to use the correct keyserver
- Then Seahorse is configured to use the correct keyserver
-
- Scenario: Fetching OpenPGP keys using GnuPG should work and be done over Tor.
- When I fetch the "10CC5BC7" OpenPGP key using the GnuPG CLI
- Then GnuPG uses the configured keyserver
- And the GnuPG fetch is successful
- And the "10CC5BC7" key is in the live user's public keyring
-
- Scenario: Fetching OpenPGP keys using Seahorse should work and be done over Tor.
- When I fetch the "10CC5BC7" OpenPGP key using Seahorse
- And the Seahorse operation is successful
- Then the "10CC5BC7" key is in the live user's public keyring
-
- Scenario: Fetching OpenPGP keys using Seahorse via the Tails OpenPGP Applet should work and be done over Tor.
- When I fetch the "10CC5BC7" OpenPGP key using Seahorse via the Tails OpenPGP Applet
- And the Seahorse operation is successful
- Then the "10CC5BC7" key is in the live user's public keyring
-
- Scenario: Syncing OpenPGP keys using Seahorse should work and be done over Tor.
- Given I fetch the "10CC5BC7" OpenPGP key using the GnuPG CLI without any signatures
- And the GnuPG fetch is successful
- And the "10CC5BC7" key is in the live user's public keyring
- But the key "10CC5BC7" has only 2 signatures
- When I start Seahorse
- Then Seahorse has opened
- And I enable key synchronization in Seahorse
- And I synchronize keys in Seahorse
- And the Seahorse operation is successful
- Then the key "10CC5BC7" has more than 2 signatures
-
- Scenario: Syncing OpenPGP keys using Seahorse started from the Tails OpenPGP Applet should work and be done over Tor.
- Given I fetch the "10CC5BC7" OpenPGP key using the GnuPG CLI without any signatures
- And the GnuPG fetch is successful
- And the "10CC5BC7" key is in the live user's public keyring
- But the key "10CC5BC7" has only 2 signatures
- When I start Seahorse via the Tails OpenPGP Applet
- Then Seahorse has opened
- And I enable key synchronization in Seahorse
- And I synchronize keys in Seahorse
- And the Seahorse operation is successful
- Then the key "10CC5BC7" has more than 2 signatures
diff --git a/features/torified_misc.feature b/features/torified_misc.feature
deleted file mode 100644
index 75f3fd0b..00000000
--- a/features/torified_misc.feature
+++ /dev/null
@@ -1,24 +0,0 @@
-@product @check_tor_leaks @fragile
-Feature: Various checks for torified software
-
- Background:
- Given I have started Tails from DVD and logged in and the network is connected
-
- Scenario: wget(1) should work for HTTP and go through Tor.
- When I wget "http://example.com/" to stdout
- Then the wget command is successful
- And the wget standard output contains "Example Domain"
-
- Scenario: wget(1) should work for HTTPS and go through Tor.
- When I wget "https://example.com/" to stdout
- Then the wget command is successful
- And the wget standard output contains "Example Domain"
-
- Scenario: wget(1) with tricky options should work for HTTP and go through Tor.
- When I wget "http://195.154.14.189/tails/stable/" to stdout with the '--spider --header="Host: dl.amnesia.boum.org"' options
- Then the wget command is successful
-
- Scenario: whois(1) should work and go through Tor.
- When I query the whois directory service for "torproject.org"
- Then the whois command is successful
- Then the whois standard output contains "The Tor Project"
diff --git a/features/totem.feature b/features/totem.feature
deleted file mode 100644
index 0e6fa05d..00000000
--- a/features/totem.feature
+++ /dev/null
@@ -1,70 +0,0 @@
-@product
-Feature: Using Totem
- As a Tails user
- I want to watch local and remote videos in Totem
- And AppArmor should prevent Totem from doing dangerous things
- And all Internet traffic should flow only through Tor
-
- Background:
- Given I create sample videos
-
- Scenario: Watching a MP4 video stored on the non-persistent filesystem
- Given a computer
- And I setup a filesystem share containing sample videos
- And I start Tails from DVD with network unplugged and I login
- And I copy the sample videos to "/home/amnesia" as user "amnesia"
- And the file "/home/amnesia/video.mp4" exists
- Given I start monitoring the AppArmor log of "/usr/bin/totem"
- When I open "/home/amnesia/video.mp4" with Totem
- Then I see "SampleLocalMp4VideoFrame.png" after at most 20 seconds
- And AppArmor has not denied "/usr/bin/totem" from opening "/home/amnesia/video.mp4"
- Given I close Totem
- And I copy the sample videos to "/home/amnesia/.gnupg" as user "amnesia"
- And the file "/home/amnesia/.gnupg/video.mp4" exists
- And I restart monitoring the AppArmor log of "/usr/bin/totem"
- When I try to open "/home/amnesia/.gnupg/video.mp4" with Totem
- Then I see "TotemUnableToOpen.png" after at most 10 seconds
- And AppArmor has denied "/usr/bin/totem" from opening "/home/amnesia/.gnupg/video.mp4"
- Given I close Totem
- And the file "/lib/live/mount/overlay/home/amnesia/.gnupg/video.mp4" exists
- And I restart monitoring the AppArmor log of "/usr/bin/totem"
- When I try to open "/lib/live/mount/overlay/home/amnesia/.gnupg/video.mp4" with Totem
- Then I see "TotemUnableToOpen.png" after at most 10 seconds
- And AppArmor has denied "/usr/bin/totem" from opening "/lib/live/mount/overlay/home/amnesia/.gnupg/video.mp4"
- Given I close Totem
- And the file "/live/overlay/home/amnesia/.gnupg/video.mp4" exists
- And I restart monitoring the AppArmor log of "/usr/bin/totem"
- When I try to open "/live/overlay/home/amnesia/.gnupg/video.mp4" with Totem
- Then I see "TotemUnableToOpen.png" after at most 10 seconds
- # Due to our AppArmor aliases, /live/overlay will be treated
- # as /lib/live/mount/overlay.
- And AppArmor has denied "/usr/bin/totem" from opening "/lib/live/mount/overlay/home/amnesia/.gnupg/video.mp4"
-
- #10497: wait_until_tor_is_working
- @check_tor_leaks @fragile
- Scenario: Watching a WebM video over HTTPS
- Given I have started Tails from DVD and logged in and the network is connected
- Then I can watch a WebM video over HTTPs
-
- #10720: Tails Installer freezes on Jenkins
- @fragile
- Scenario: Watching MP4 videos stored on the persistent volume should work as expected given our AppArmor confinement
- Given I have started Tails without network from a USB drive with a persistent partition and stopped at Tails Greeter's login screen
- # Due to bug #5571 we have to reboot to be able to use
- # filesystem shares.
- And I shutdown Tails and wait for the computer to power off
- And I setup a filesystem share containing sample videos
- And I start Tails from USB drive "__internal" with network unplugged and I login with persistence enabled
- And I copy the sample videos to "/home/amnesia/Persistent" as user "amnesia"
- And I copy the sample videos to "/home/amnesia/.gnupg" as user "amnesia"
- And I shutdown Tails and wait for the computer to power off
- And I start Tails from USB drive "__internal" with network unplugged and I login with persistence enabled
- And the file "/home/amnesia/Persistent/video.mp4" exists
- When I open "/home/amnesia/Persistent/video.mp4" with Totem
- Then I see "SampleLocalMp4VideoFrame.png" after at most 10 seconds
- Given I close Totem
- And the file "/home/amnesia/.gnupg/video.mp4" exists
- And I start monitoring the AppArmor log of "/usr/bin/totem"
- When I try to open "/home/amnesia/.gnupg/video.mp4" with Totem
- Then I see "TotemUnableToOpen.png" after at most 10 seconds
- And AppArmor has denied "/usr/bin/totem" from opening "/home/amnesia/.gnupg/video.mp4"
diff --git a/features/unsafe_browser.feature b/features/unsafe_browser.feature
deleted file mode 100644
index d47f770c..00000000
--- a/features/unsafe_browser.feature
+++ /dev/null
@@ -1,73 +0,0 @@
-@product
-Feature: Browsing the web using the Unsafe Browser
- As a Tails user
- when I browse the web using the Unsafe Browser
- I should have direct access to the web
-
- @fragile
- Scenario: The Unsafe Browser can access the LAN
- Given I have started Tails from DVD and logged in and the network is connected
- And a web server is running on the LAN
- When I successfully start the Unsafe Browser
- And I open a page on the LAN web server in the Unsafe Browser
- Then I see "UnsafeBrowserHelloLANWebServer.png" after at most 20 seconds
-
- @fragile
- Scenario: Starting the Unsafe Browser works as it should.
- Given I have started Tails from DVD and logged in and the network is connected
- When I successfully start the Unsafe Browser
- Then the Unsafe Browser runs as the expected user
- And the Unsafe Browser has a red theme
- And the Unsafe Browser shows a warning as its start page
- And the Unsafe Browser has no plugins installed
- And the Unsafe Browser has no add-ons installed
- And the Unsafe Browser has only Firefox's default bookmarks configured
- And the Unsafe Browser has no proxy configured
- And the Unsafe Browser uses all expected TBB shared libraries
-
- @fragile
- Scenario: Closing the Unsafe Browser shows a stop notification and properly tears down the chroot.
- Given I have started Tails from DVD and logged in and the network is connected
- When I successfully start the Unsafe Browser
- And I close the Unsafe Browser
- Then I see the Unsafe Browser stop notification
- And the Unsafe Browser chroot is torn down
-
- @fragile
- Scenario: Starting a second instance of the Unsafe Browser results in an error message being shown.
- Given I have started Tails from DVD and logged in and the network is connected
- When I successfully start the Unsafe Browser
- And I start the Unsafe Browser
- Then I see a warning about another instance already running
-
- @fragile
- Scenario: Opening check.torproject.org in the Unsafe Browser shows the red onion and a warning message.
- Given I have started Tails from DVD and logged in and the network is connected
- When I successfully start the Unsafe Browser
- And I open the address "https://check.torproject.org" in the Unsafe Browser
- Then I see "UnsafeBrowserTorCheckFail.png" after at most 60 seconds
- And the clearnet user has sent packets out to the Internet
-
- @fragile
- Scenario: The Unsafe Browser cannot be configured to use Tor and other local proxies.
- Given I have started Tails from DVD and logged in and the network is connected
- When I successfully start the Unsafe Browser
- Then I cannot configure the Unsafe Browser to use any local proxies
-
- @fragile
- Scenario: The Unsafe Browser will not make any connections to the Internet which are not user initiated
- Given I have started Tails from DVD and logged in and the network is connected
- And I capture all network traffic
- And Tor is ready
- And I configure the Unsafe Browser to check for updates more frequently
- But checking for updates is disabled in the Unsafe Browser's configuration
- When I successfully start the Unsafe Browser
- Then the Unsafe Browser has started
- And I wait 120 seconds
- And the clearnet user has not sent packets out to the Internet
- And all Internet traffic has only flowed through Tor
-
- Scenario: Starting the Unsafe Browser without a network connection results in a complaint about no DNS server being configured
- Given I have started Tails from DVD without network and logged in
- When I start the Unsafe Browser
- Then the Unsafe Browser complains that no DNS server is configured
diff --git a/features/untrusted_partitions.feature b/features/untrusted_partitions.feature
deleted file mode 100644
index 55490136..00000000
--- a/features/untrusted_partitions.feature
+++ /dev/null
@@ -1,80 +0,0 @@
-@product
-Feature: Untrusted partitions
- As a Tails user
- I don't want to touch other media than the one Tails runs from
-
- Scenario: Tails will not enable disk swap
- Given a computer
- And I temporarily create a 100 MiB disk named "swap"
- And I create a gpt swap partition on disk "swap"
- And I plug ide drive "swap"
- When I start Tails with network unplugged and I login
- Then a "swap" partition was detected by Tails on drive "swap"
- But Tails has no disk swap enabled
-
- Scenario: Tails will detect LUKS-encrypted GPT partitions labeled "TailsData" stored on USB drives as persistence volumes when the removable flag is set
- Given a computer
- And I temporarily create a 100 MiB disk named "fake_TailsData"
- And I create a gpt partition labeled "TailsData" with an ext4 filesystem encrypted with password "asdf" on disk "fake_TailsData"
- And I plug removable usb drive "fake_TailsData"
- When I start the computer
- And the computer boots Tails
- Then drive "fake_TailsData" is detected by Tails
- And Tails Greeter has detected a persistence partition
-
- Scenario: Tails will not detect LUKS-encrypted GPT partitions labeled "TailsData" stored on USB drives as persistence volumes when the removable flag is unset
- Given a computer
- And I temporarily create a 100 MiB disk named "fake_TailsData"
- And I create a gpt partition labeled "TailsData" with an ext4 filesystem encrypted with password "asdf" on disk "fake_TailsData"
- And I plug non-removable usb drive "fake_TailsData"
- When I start the computer
- And the computer boots Tails
- Then drive "fake_TailsData" is detected by Tails
- And Tails Greeter has not detected a persistence partition
-
- Scenario: Tails will not detect LUKS-encrypted GPT partitions labeled "TailsData" stored on local hard drives as persistence volumes
- Given a computer
- And I temporarily create a 100 MiB disk named "fake_TailsData"
- And I create a gpt partition labeled "TailsData" with an ext4 filesystem encrypted with password "asdf" on disk "fake_TailsData"
- And I plug ide drive "fake_TailsData"
- When I start the computer
- And the computer boots Tails
- Then drive "fake_TailsData" is detected by Tails
- And Tails Greeter has not detected a persistence partition
-
- Scenario: Tails can boot from live systems stored on hard drives
- Given a computer
- And I temporarily create a 2 GiB disk named "live_hd"
- And I cat an ISO of the Tails image to disk "live_hd"
- And the computer is set to boot from ide drive "live_hd"
- And I set Tails to boot with options "live-media="
- When I start Tails with network unplugged and I login
- Then Tails is running from ide drive "live_hd"
- And Tails seems to have booted normally
-
- Scenario: Tails booting from a DVD does not use live systems stored on hard drives
- Given a computer
- And I temporarily create a 2 GiB disk named "live_hd"
- And I cat an ISO of the Tails image to disk "live_hd"
- And I plug ide drive "live_hd"
- And I start Tails from DVD with network unplugged and I login
- Then drive "live_hd" is detected by Tails
- And drive "live_hd" is not mounted
-
- Scenario: Booting Tails does not automount untrusted ext2 partitions
- Given a computer
- And I temporarily create a 100 MiB disk named "gpt_ext2"
- And I create a gpt partition with an ext2 filesystem on disk "gpt_ext2"
- And I plug ide drive "gpt_ext2"
- And I start Tails from DVD with network unplugged and I login
- Then drive "gpt_ext2" is detected by Tails
- And drive "gpt_ext2" is not mounted
-
- Scenario: Booting Tails does not automount untrusted fat32 partitions
- Given a computer
- And I temporarily create a 100 MiB disk named "msdos_fat32"
- And I create an msdos partition with a vfat filesystem on disk "msdos_fat32"
- And I plug ide drive "msdos_fat32"
- And I start Tails from DVD with network unplugged and I login
- Then drive "msdos_fat32" is detected by Tails
- And drive "msdos_fat32" is not mounted
diff --git a/features/usb_install.feature b/features/usb_install.feature
deleted file mode 100644
index 750df7ab..00000000
--- a/features/usb_install.feature
+++ /dev/null
@@ -1,107 +0,0 @@
-@product
-Feature: Installing Tails to a USB drive
- As a Tails user
- I want to install Tails to a suitable USB drive
-
- Scenario: Try installing Tails to a too small USB drive
- Given I have started Tails from DVD without network and logged in
- And I temporarily create a 2 GiB disk named "too-small-device"
- And I start Tails Installer in "Clone & Install" mode
- But a suitable USB device is not found
- When I plug USB drive "too-small-device"
- Then Tails Installer detects that a device is too small
- And a suitable USB device is not found
- When I unplug USB drive "too-small-device"
- And I create a 4 GiB disk named "big-enough"
- And I plug USB drive "big-enough"
- Then the "big-enough" USB drive is selected
-
- Scenario: Detecting when a target USB drive is inserted or removed
- Given I have started Tails from DVD without network and logged in
- And I temporarily create a 4 GiB disk named "temp"
- And I start Tails Installer in "Clone & Install" mode
- But a suitable USB device is not found
- When I plug USB drive "temp"
- Then the "temp" USB drive is selected
- When I unplug USB drive "temp"
- Then no USB drive is selected
- And a suitable USB device is not found
-
- #10720: Tails Installer freezes on Jenkins
- @fragile
- Scenario: Installing Tails to a pristine USB drive
- Given I have started Tails from DVD without network and logged in
- And I temporarily create a 4 GiB disk named "install"
- And I plug USB drive "install"
- And I "Clone & Install" Tails to USB drive "install"
- Then the running Tails is installed on USB drive "install"
- But there is no persistence partition on USB drive "install"
-
- #10720: Tails Installer freezes on Jenkins
- @fragile
- Scenario: Booting Tails from a USB drive without a persistent partition and creating one
- Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
- And I log in to a new session
- Then Tails seems to have booted normally
- When I create a persistent partition
- Then a Tails persistence partition exists on USB drive "__internal"
-
- #10720: Tails Installer freezes on Jenkins
- @fragile
- Scenario: Booting Tails from a USB drive without a persistent partition
- Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
- When I log in to a new session
- Then Tails seems to have booted normally
- And Tails is running from USB drive "__internal"
- And the persistent Tor Browser directory does not exist
- And there is no persistence partition on USB drive "__internal"
-
- #10720: Tails Installer freezes on Jenkins
- @fragile
- Scenario: Booting Tails from a USB drive in UEFI mode
- Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
- Then I power off the computer
- Given the computer is set to boot in UEFI mode
- When I start Tails from USB drive "__internal" with network unplugged and I login
- Then the boot device has safe access rights
- And Tails is running from USB drive "__internal"
- And the boot device has safe access rights
- And Tails has started in UEFI mode
-
- #10720: Tails Installer freezes on Jenkins
- @fragile
- Scenario: Installing Tails to a USB drive with an MBR partition table but no partitions, and making sure that it boots
- Given I have started Tails from DVD without network and logged in
- And I temporarily create a 4 GiB disk named "mbr"
- And I create a msdos label on disk "mbr"
- And I plug USB drive "mbr"
- And I "Clone & Install" Tails to USB drive "mbr"
- Then the running Tails is installed on USB drive "mbr"
- But there is no persistence partition on USB drive "mbr"
- When I shutdown Tails and wait for the computer to power off
- And I start Tails from USB drive "mbr" with network unplugged and I login
- Then Tails is running from USB drive "mbr"
- And the boot device has safe access rights
- And there is no persistence partition on USB drive "mbr"
-
- #10720: Tails Installer freezes on Jenkins
- @fragile
- Scenario: Cat:ing a Tails isohybrid to a USB drive and booting it, then trying to upgrading it but ending up having to do a fresh installation, which boots
- Given a computer
- And I temporarily create a 4 GiB disk named "isohybrid"
- And I cat an ISO of the Tails image to disk "isohybrid"
- And I start Tails from USB drive "isohybrid" with network unplugged and I login
- Then Tails is running from USB drive "isohybrid"
- When I shutdown Tails and wait for the computer to power off
- And I start Tails from DVD with network unplugged and I login
- And I try a "Clone & Upgrade" Tails to USB drive "isohybrid"
- Then I am suggested to do a "Clone & Install"
- When I kill the process "tails-installer"
- And I "Clone & Install" Tails to USB drive "isohybrid"
- Then the running Tails is installed on USB drive "isohybrid"
- But there is no persistence partition on USB drive "isohybrid"
- When I shutdown Tails and wait for the computer to power off
- And I start Tails from USB drive "isohybrid" with network unplugged and I login
- Then Tails is running from USB drive "isohybrid"
- And the boot device has safe access rights
- And there is no persistence partition on USB drive "isohybrid"
diff --git a/features/usb_upgrade.feature b/features/usb_upgrade.feature
deleted file mode 100644
index 7462489a..00000000
--- a/features/usb_upgrade.feature
+++ /dev/null
@@ -1,164 +0,0 @@
-#10720: Tails Installer freezes on Jenkins
-@product @fragile
-Feature: Upgrading an old Tails USB installation
- As a Tails user
- If I have an old versoin of Tails installed on a USB device
- and the USB device has a persistent partition
- I want to upgrade Tails on it
- and keep my persistent partition in the process
-
- # An issue with this feature is that scenarios depend on each
- # other. When editing this feature, make sure you understand these
- # dependencies (which are documented below).
-
- Scenario: Try to "Upgrade from ISO" Tails to a pristine USB drive
- Given a computer
- And I setup a filesystem share containing the Tails ISO
- And I start Tails from DVD with network unplugged and I login
- And I temporarily create a 4 GiB disk named "pristine"
- And I plug USB drive "pristine"
- And I start Tails Installer in "Upgrade from ISO" mode
- Then a suitable USB device is not found
- And I am told that the destination device cannot be upgraded
-
- Scenario: Try to "Clone & Upgrade" Tails to a pristine USB drive
- Given I have started Tails from DVD without network and logged in
- And I temporarily create a 4 GiB disk named "pristine"
- And I plug USB drive "pristine"
- And I start Tails Installer in "Clone & Upgrade" mode
- Then a suitable USB device is not found
- And I am told that the destination device cannot be upgraded
-
- Scenario: Try to "Upgrade from ISO" Tails to a USB drive with GPT and a FAT partition
- Given a computer
- And I setup a filesystem share containing the Tails ISO
- And I start Tails from DVD with network unplugged and I login
- And I temporarily create a 4 GiB disk named "gptfat"
- And I create a gpt partition with a vfat filesystem on disk "gptfat"
- And I plug USB drive "gptfat"
- And I start Tails Installer in "Upgrade from ISO" mode
- Then a suitable USB device is not found
- And I am told that the destination device cannot be upgraded
-
- Scenario: Try to "Clone & Upgrade" Tails to a USB drive with GPT and a FAT partition
- Given I have started Tails from DVD without network and logged in
- And I temporarily create a 4 GiB disk named "gptfat"
- And I create a gpt partition with a vfat filesystem on disk "gptfat"
- And I plug USB drive "gptfat"
- And I start Tails Installer in "Upgrade from ISO" mode
- Then a suitable USB device is not found
- And I am told that the destination device cannot be upgraded
-
- Scenario: Installing an old version of Tails to a pristine USB drive
- Given a computer
- And the computer is set to boot from the old Tails DVD
- And the network is unplugged
- And I start the computer
- When the computer boots Tails
- And I log in to a new session
- And the Tails desktop is ready
- And all notifications have disappeared
- And I create a 4 GiB disk named "old"
- And I plug USB drive "old"
- And I "Clone & Install" Tails to USB drive "old"
- Then the running Tails is installed on USB drive "old"
- But there is no persistence partition on USB drive "old"
- And I unplug USB drive "old"
-
- # Depends on scenario: Installing an old version of Tails to a pristine USB drive
- Scenario: Creating a persistent partition with the old Tails USB installation
- Given a computer
- And I start Tails from USB drive "old" with network unplugged and I login
- Then Tails is running from USB drive "old"
- And I create a persistent partition
- And I take note of which persistence presets are available
- Then a Tails persistence partition exists on USB drive "old"
- And I shutdown Tails and wait for the computer to power off
-
- # Depends on scenario: Creating a persistent partition with the old Tails USB installation
- Scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
- Given a computer
- And I start Tails from USB drive "old" with network unplugged and I login with persistence enabled
- Then Tails is running from USB drive "old"
- And all persistence presets are enabled
- And I write some files expected to persist
- And all persistent filesystems have safe access rights
- And all persistence configuration files have safe access rights
- And all persistent directories from the old Tails version have safe access rights
- And I take note of which persistence presets are available
- And I shutdown Tails and wait for the computer to power off
- # XXX: how does guestfs work vs snapshots?
- Then only the expected files are present on the persistence partition on USB drive "old"
-
- # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
- Scenario: Upgrading an old Tails USB installation from a Tails DVD
- Given I have started Tails from DVD without network and logged in
- And I clone USB drive "old" to a new USB drive "to_upgrade"
- And I plug USB drive "to_upgrade"
- When I "Clone & Upgrade" Tails to USB drive "to_upgrade"
- Then the running Tails is installed on USB drive "to_upgrade"
- And I unplug USB drive "to_upgrade"
-
- # Depends on scenario: Upgrading an old Tails USB installation from a Tails DVD
- Scenario: Booting Tails from a USB drive upgraded from DVD with persistence enabled
- Given a computer
- And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
- Then all persistence presets from the old Tails version are enabled
- And Tails is running from USB drive "to_upgrade"
- And the boot device has safe access rights
- And the expected persistent files created with the old Tails version are present in the filesystem
- And all persistent directories from the old Tails version have safe access rights
-
- # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
- Scenario: Upgrading an old Tails USB installation from another Tails USB drive
- Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
- And I log in to a new session
- And Tails seems to have booted normally
- And I clone USB drive "old" to a new USB drive "to_upgrade"
- And I plug USB drive "to_upgrade"
- When I "Clone & Upgrade" Tails to USB drive "to_upgrade"
- Then the running Tails is installed on USB drive "to_upgrade"
- And I unplug USB drive "to_upgrade"
- And I unplug USB drive "__internal"
-
- # Depends on scenario: Upgrading an old Tails USB installation from another Tails USB drive
- Scenario: Booting Tails from a USB drive upgraded from USB with persistence enabled
- Given a computer
- And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
- Then all persistence presets from the old Tails version are enabled
- And Tails is running from USB drive "to_upgrade"
- And the boot device has safe access rights
- And the expected persistent files created with the old Tails version are present in the filesystem
- And all persistent directories from the old Tails version have safe access rights
-
- # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
- Scenario: Upgrading an old Tails USB installation from an ISO image, running on the old version
- Given a computer
- And I clone USB drive "old" to a new USB drive "to_upgrade"
- And I setup a filesystem share containing the Tails ISO
- When I start Tails from USB drive "old" with network unplugged and I login
- And I plug USB drive "to_upgrade"
- And I do a "Upgrade from ISO" on USB drive "to_upgrade"
- Then the ISO's Tails is installed on USB drive "to_upgrade"
- And I unplug USB drive "to_upgrade"
-
- # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
- Scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
- Given a computer
- And I clone USB drive "old" to a new USB drive "to_upgrade"
- And I setup a filesystem share containing the Tails ISO
- And I start Tails from DVD with network unplugged and I login
- And I plug USB drive "to_upgrade"
- And I do a "Upgrade from ISO" on USB drive "to_upgrade"
- Then the ISO's Tails is installed on USB drive "to_upgrade"
- And I unplug USB drive "to_upgrade"
-
- # Depends on scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
- Scenario: Booting a USB drive upgraded from ISO with persistence enabled
- Given a computer
- And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
- Then all persistence presets from the old Tails version are enabled
- And Tails is running from USB drive "to_upgrade"
- And the boot device has safe access rights
- And the expected persistent files created with the old Tails version are present in the filesystem
- And all persistent directories from the old Tails version have safe access rights