From da080c472fc415b0ce918f4dd4a1ab143bb1bca4 Mon Sep 17 00:00:00 2001 From: Philip Hands Date: Mon, 14 Mar 2016 15:36:16 +0100 Subject: rough attempt to grab the good cucumber bits from recent tails --- features/usb_install.feature | 323 +++++++++++-------------------------------- 1 file changed, 78 insertions(+), 245 deletions(-) (limited to 'features/usb_install.feature') diff --git a/features/usb_install.feature b/features/usb_install.feature index b40ca93b..750df7ab 100644 --- a/features/usb_install.feature +++ b/features/usb_install.feature @@ -1,273 +1,106 @@ -@product @old_iso -Feature: Installing Tails to a USB drive, upgrading it, and using persistence +@product +Feature: Installing Tails to a USB drive As a Tails user - I may want to install Tails to a USB drive - and upgrade it to new Tails versions - and use persistence - - @keep_volumes + 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 a computer - And I start Tails from DVD with network unplugged and I login - And I create a new 4 GiB USB drive named "current" - And I plug USB drive "current" - And I "Clone & Install" Tails to USB drive "current" - Then the running Tails is installed on USB drive "current" - But there is no persistence partition on USB drive "current" - And I unplug USB drive "current" - - @keep_volumes + 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 a computer - And the computer is set to boot in UEFI mode - When I start Tails from USB drive "current" with network unplugged and I login + 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 "current" + And Tails is running from USB drive "__internal" And the boot device has safe access rights And Tails has started in UEFI mode - @keep_volumes - Scenario: Booting Tails from a USB drive without a persistent partition and creating one - Given a computer - And I start Tails from USB drive "current" with network unplugged and I login - Then the boot device has safe access rights - And Tails is running from USB drive "current" - And the boot device has safe access rights - And there is no persistence partition on USB drive "current" - And I create a persistent partition with password "asdf" - Then a Tails persistence partition with password "asdf" exists on USB drive "current" - And I shutdown Tails and wait for the computer to power off - - @keep_volumes - Scenario: Booting Tails from a USB drive with a disabled persistent partition - Given a computer - And I start Tails from USB drive "current" with network unplugged and I login - Then Tails is running from USB drive "current" - And the boot device has safe access rights - And persistence is disabled - But a Tails persistence partition with password "asdf" exists on USB drive "current" - - @keep_volumes - Scenario: Persistent browser bookmarks - Given a computer - And the computer is set to boot from USB drive "current" - And the network is unplugged - When I start the computer - And the computer boots Tails - And Tails is running from USB drive "current" - And the boot device has safe access rights - And I enable persistence with password "asdf" - And I log in to a new session - And GNOME has started - And all notifications have disappeared - And persistence is enabled - And persistent filesystems have safe access rights - And persistence configuration files have safe access rights - And 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 with password "asdf" - And I log in to a new session - And GNOME has started - 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 - - @keep_volumes - Scenario: Writing files to a read/write-enabled persistent partition - Given a computer - And I start Tails from USB drive "current" with network unplugged and I login with persistence password "asdf" - Then Tails is running from USB drive "current" - And the boot device has safe access rights - And persistence is enabled - And I write some files expected to persist - And persistent filesystems have safe access rights - And persistence configuration files have safe access rights - And persistent directories have safe access rights - And I shutdown Tails and wait for the computer to power off - Then only the expected files should persist on USB drive "current" - - @keep_volumes - Scenario: Writing files to a read-only-enabled persistent partition - Given a computer - And I start Tails from USB drive "current" with network unplugged and I login with read-only persistence password "asdf" - Then Tails is running from USB drive "current" - And the boot device has safe access rights - And persistence is enabled - And I write some files not expected to persist - And I remove some files expected to persist - And I shutdown Tails and wait for the computer to power off - Then only the expected files should persist on USB drive "current" - - @keep_volumes - Scenario: Deleting a Tails persistent partition - Given a computer - And I start Tails from USB drive "current" with network unplugged and I login - Then Tails is running from USB drive "current" - And the boot device has safe access rights - And persistence is disabled - But a Tails persistence partition with password "asdf" exists on USB drive "current" - And all notifications have disappeared - When I delete the persistent partition - Then there is no persistence partition on USB drive "current" - - @keep_volumes - 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 GNOME has started - And all notifications have disappeared - And I create a new 4 GiB USB drive 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" - - @keep_volumes - 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 with password "asdf" - Then a Tails persistence partition with password "asdf" exists on USB drive "old" - And I shutdown Tails and wait for the computer to power off - - @keep_volumes - 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 password "asdf" - Then Tails is running from USB drive "old" - And persistence is enabled - And I write some files expected to persist - And persistent filesystems have safe access rights - And persistence configuration files have safe access rights - And persistent directories have safe access rights - And I shutdown Tails and wait for the computer to power off - Then only the expected files should persist on USB drive "old" - - @keep_volumes - Scenario: Upgrading an old Tails USB installation from a Tails DVD - Given a computer - And I clone USB drive "old" to a new USB drive "to_upgrade" - And I start Tails from DVD with network unplugged and I login - And I plug USB drive "to_upgrade" - And 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" - - @keep_volumes - 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 password "asdf" - Then Tails is running from USB drive "to_upgrade" - And the boot device has safe access rights - And the expected persistent files are present in the filesystem - And persistent directories have safe access rights - - @keep_volumes - Scenario: Upgrading an old Tails USB installation from another Tails USB drive - Given a computer - And I clone USB drive "old" to a new USB drive "to_upgrade" - And I start Tails from USB drive "current" with network unplugged and I login - Then Tails is running from USB drive "current" - And the boot device has safe access rights - And I plug USB drive "to_upgrade" - And 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 "current" - - @keep_volumes - 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 password "asdf" - Then persistence is enabled - And Tails is running from USB drive "to_upgrade" - And the boot device has safe access rights - And the expected persistent files are present in the filesystem - And persistent directories have safe access rights - - @keep_volumes - 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" - - @keep_volumes - 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" - - 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 password "asdf" - Then persistence is enabled - And Tails is running from USB drive "to_upgrade" - And the boot device has safe access rights - And the expected persistent files are present in the filesystem - And persistent directories have safe access rights - - @keep_volumes - Scenario: Installing Tails to a USB drive with an MBR partition table but no partitions - Given a computer - And I create a 4 GiB disk named "mbr" + #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 start Tails from DVD with network unplugged and I login 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" - And I unplug USB drive "mbr" - - Scenario: Booting a USB drive that originally had an empty MBR partition table - Given a computer + 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" - @keep_volumes - Scenario: Cat:ing a Tails isohybrid to a USB drive and booting it + #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 create a 4 GiB disk named "isohybrid" - And I cat an ISO hybrid of the Tails image to disk "isohybrid" + 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" - - @keep_volumes - Scenario: Try upgrading but end up installing Tails to a USB drive containing a Tails isohybrid installation - Given a computer + 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 plug USB drive "isohybrid" And I try a "Clone & Upgrade" Tails to USB drive "isohybrid" - But I am suggested to do a "Clone & Install" - And I kill the process "liveusb-creator" + 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" - And I unplug USB drive "isohybrid" - - Scenario: Booting a USB drive that originally had a isohybrid installation - Given a computer + 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 -- cgit v1.2.3-70-g09d2