Fix grammar (refs: #16199)
[tails.git] / features / usb_upgrade.feature
blobe49fc24e8ba54447803a0fe61bd1ccbfaa6014e8
1 @product
2 Feature: Upgrading an old Tails USB installation
3   As a Tails user
4   If I have an old version of Tails installed on a USB device
5   and the USB device has a persistent partition
6   I want to upgrade Tails on it
7   and keep my persistent partition in the process
9   # An issue with this feature is that scenarios depend on each
10   # other. When editing this feature, make sure you understand these
11   # dependencies (which are documented below).
13   Scenario: Try cloning Tails to a too small partition
14     Given I have started Tails from DVD without network and logged in
15     And I temporarily create a 7200 MiB disk named "too-small-partition"
16     And I create a 500 MiB gpt partition labeled "Tails" with a vfat filesystem on disk "too-small-partition"
17     And I plug USB drive "too-small-partition"
18     When I start Tails Installer
19     Then I am told by Tails Installer that I "need to use a downloaded Tails ISO image"
21   Scenario: Installing an old version of Tails to a pristine USB drive
22     Given a computer
23     And the computer is set to boot from the old Tails DVD
24     And the network is unplugged
25     And I start the computer
26     When the computer boots Tails
27     And I log in to a new session
28     And all notifications have disappeared
29     And I create a 7200 MiB disk named "old"
30     And I plug USB drive "old"
31     When I install Tails to USB drive "old" by cloning
32     Then the running Tails is installed on USB drive "old"
33     But there is no persistence partition on USB drive "old"
34     And I unplug USB drive "old"
36   # Depends on scenario: Installing an old version of Tails to a pristine USB drive
37   Scenario: Creating a persistent partition with the old Tails USB installation
38     Given a computer
39     And I start Tails from USB drive "old" with network unplugged and I login
40     Then Tails is running from USB drive "old"
41     And I create a persistent partition
42     And I take note of which persistence presets are available
43     Then a Tails persistence partition exists on USB drive "old"
44     And I shutdown Tails and wait for the computer to power off
46   # Depends on scenario: Creating a persistent partition with the old Tails USB installation
47   Scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
48     Given a computer
49     And I start Tails from USB drive "old" with network unplugged and I login with persistence enabled
50     Then Tails is running from USB drive "old"
51     And all persistence presets are enabled
52     When I write some files expected to persist
53     And all persistent filesystems have safe access rights
54     And all persistence configuration files have safe access rights
55     And all persistent directories from the old Tails version have safe access rights
56     And I take note of which persistence presets are available
57     And I shutdown Tails and wait for the computer to power off
58     # XXX: how does guestfs work vs snapshots?
59     Then only the expected files are present on the persistence partition on USB drive "old"
61   # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
62   Scenario: Upgrading an old Tails USB installation from a Tails DVD
63     Given I have started Tails from DVD without network and logged in
64     And I clone USB drive "old" to a new USB drive "to_upgrade"
65     And I plug USB drive "to_upgrade"
66     When I upgrade Tails to USB drive "to_upgrade" by cloning
67     Then the running Tails is installed on USB drive "to_upgrade"
68     And I unplug USB drive "to_upgrade"
70   # Depends on scenario: Upgrading an old Tails USB installation from a Tails DVD
71   Scenario: Booting Tails from a USB drive upgraded from DVD with persistence enabled
72     Given a computer
73     And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
74     Then all persistence presets from the old Tails version are enabled
75     And Tails is running from USB drive "to_upgrade"
76     And the boot device has safe access rights
77     And the expected persistent files created with the old Tails version are present in the filesystem
78     And all persistent directories from the old Tails version have safe access rights
80   # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
81   Scenario: Upgrading an old Tails USB installation from another Tails USB drive
82     Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
83     And I log in to a new session
84     And I clone USB drive "old" to a new USB drive "to_upgrade"
85     And I plug USB drive "to_upgrade"
86     When I upgrade Tails to USB drive "to_upgrade" by cloning
87     Then the running Tails is installed on USB drive "to_upgrade"
88     And I unplug USB drive "to_upgrade"
89     And I unplug USB drive "__internal"
91   # Depends on scenario: Upgrading an old Tails USB installation from another Tails USB drive
92   Scenario: Booting Tails from a USB drive upgraded from USB with persistence enabled
93     Given a computer
94     And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
95     Then all persistence presets from the old Tails version are enabled
96     And Tails is running from USB drive "to_upgrade"
97     And the boot device has safe access rights
98     And the expected persistent files created with the old Tails version are present in the filesystem
99     And all persistent directories from the old Tails version have safe access rights
101   # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
102   Scenario: Upgrading an old Tails USB installation from an ISO image, running on the old version
103     Given a computer
104     And I clone USB drive "old" to a new USB drive "to_upgrade"
105     When I start Tails from USB drive "old" with network unplugged and I login
106     And I plug and mount a USB drive containing the Tails ISO
107     And I plug USB drive "to_upgrade"
108     And I upgrade Tails on USB drive "to_upgrade" from an ISO
109     Then the ISO's Tails is installed on USB drive "to_upgrade"
110     And I unplug USB drive "to_upgrade"
112   # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
113   Scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
114     Given I have started Tails from DVD without network and logged in
115     And I plug and mount a USB drive containing the Tails ISO
116     And I clone USB drive "old" to a new USB drive "to_upgrade"
117     And I plug USB drive "to_upgrade"
118     And I upgrade Tails on USB drive "to_upgrade" from an ISO
119     Then the ISO's Tails is installed on USB drive "to_upgrade"
120     And I unplug USB drive "to_upgrade"
122   # Depends on scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
123   Scenario: Booting a USB drive upgraded from ISO with persistence enabled
124     Given a computer
125     And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
126     Then all persistence presets from the old Tails version are enabled
127     And Tails is running from USB drive "to_upgrade"
128     And the boot device has safe access rights
129     And the expected persistent files created with the old Tails version are present in the filesystem
130     And all persistent directories from the old Tails version have safe access rights
132   Scenario: Upgrading Tails with Tails Upgrader through an incremental upgrade
133     Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
134     And Tails is fooled to think it is running version 1.0~test
135     And the file system changes introduced in version 1.1~test are not present
136     When the network is plugged
137     And Tor is ready
138     And all notifications have disappeared
139     Then I am proposed to install an incremental upgrade to version 1.1~test
140     And I can successfully install the incremental upgrade to version 1.1~test
141     Given I shutdown Tails and wait for the computer to power off
142     When I start Tails from USB drive "__internal" with network unplugged and I login with persistence enabled
143     Then Tails is running version 1.1~test
144     And all persistence presets are enabled
145     And the file system changes introduced in version 1.1~test are present
146     # Our IUK sets a release date that can make Tor bootstrapping impossible
147     Given Tails system time is magically synchronized
148     When the network is plugged
149     And Tor is ready
150     And all notifications have disappeared
151     # Regression test on #8158 (i.e. the IUK's filesystem is not part of the Unsafe Browser's chroot)
152     And I successfully start the Unsafe Browser
153     Then the file system changes introduced in version 1.1~test are present in the Unsafe Browser's chroot