2 Feature: Installing Tails to a USB drive, upgrading it, and using persistence
4 I may want to install Tails to a USB drive
5 and upgrade it to new Tails versions
8 # An issue with this feature is that scenarios depend on each other.
9 # For instance, "Tails boot from USB drive without persistent
10 # partition" depends on "Install Tails to a USB drive". This feels
11 # strange, but the alternative would be gigantic scenarios that
12 # test what to me feels like logically different features, e.g.
13 # the two named above would be concatenated.
15 Scenario: Installing Tails to a pristine USB drive
17 And the computer is set to boot from the Tails DVD
18 And the network is unplugged
19 And I start the computer
20 When the computer boots Tails
21 And I log in to a new session
23 And I have closed all annoying notifications
24 And I create a new 4 GiB USB drive named "current"
25 And I plug USB drive "current"
26 And I "Clone & Install" Tails to USB drive "current"
27 Then Tails is installed on USB drive "current"
28 But there is no persistence partition on USB drive "current"
29 And I unplug USB drive "current"
31 Scenario: Booting Tails from a USB drive without a persistent partition
33 And the computer is set to boot from USB drive "current"
34 And the network is unplugged
35 When I start the computer
36 And the computer boots Tails
37 And I log in to a new session
38 Then Tails seems to have booted normally
39 And Tails is running from USB drive "current"
40 And the boot device has safe access rights
41 And there is no persistence partition on USB drive "current"
43 Scenario: Creating a persistent partition
45 And the computer is set to boot from USB drive "current"
46 And the network is unplugged
47 When I start the computer
48 And the computer boots Tails
49 And Tails is running from USB drive "current"
50 And the boot device has safe access rights
51 And I log in to a new session
53 And I have closed all annoying notifications
54 And there is no persistence partition on USB drive "current"
55 And I create a persistent partition with password "asdf"
56 Then a Tails persistence partition with password "asdf" exists on USB drive "current"
57 And I completely shutdown Tails
59 Scenario: Booting Tails from a USB drive with a disabled persistent partition
61 And the computer is set to boot from USB drive "current"
62 And the network is unplugged
63 When I start the computer
64 And the computer boots Tails
65 And I log in to a new session
66 Then Tails seems to have booted normally
67 And Tails is running from USB drive "current"
68 And the boot device has safe access rights
69 And persistence is not enabled
70 But a Tails persistence partition with password "asdf" exists on USB drive "current"
72 Scenario: Writing files to a read/write-enabled persistent partition
74 And the computer is set to boot from USB drive "current"
75 And the network is unplugged
76 When I start the computer
77 And the computer boots Tails
78 And Tails is running from USB drive "current"
79 And the boot device has safe access rights
80 And I enable persistence with password "asdf"
81 And I log in to a new session
83 And I have closed all annoying notifications
84 And persistence has been enabled
85 And persistence filesystems have safe access rights
86 And persistence configuration files have safe access rights
87 And I write some files expected to persist
88 And I completely shutdown Tails
89 Then only the expected files should persist on USB drive "current"
91 Scenario: Writing files to a read-only-enabled persistent partition
93 And the computer is set to boot from USB drive "current"
94 And the network is unplugged
95 When I start the computer
96 And the computer boots Tails
97 And Tails is running from USB drive "current"
98 And the boot device has safe access rights
99 And I enable read-only persistence with password "asdf"
100 And I log in to a new session
101 And GNOME has started
102 And I have closed all annoying notifications
103 And persistence has been enabled
104 And I write some files not expected to persist
105 And I remove some files expected to persist
106 And I completely shutdown Tails
107 Then only the expected files should persist on USB drive "current"
109 Scenario: Deleting a Tails persistent partition
111 And the computer is set to boot from USB drive "current"
112 And the network is unplugged
113 And I start the computer
114 And the computer boots Tails
115 And I log in to a new session
116 And Tails is running from USB drive "current"
117 And the boot device has safe access rights
118 And Tails seems to have booted normally
119 And persistence is not enabled
120 But a Tails persistence partition with password "asdf" exists on USB drive "current"
121 And I have closed all annoying notifications
122 When I delete the persistent partition
123 Then there is no persistence partition on USB drive "current"
125 Scenario: Installing an old version of Tails to a pristine USB drive
127 And the computer is set to boot from the old Tails DVD
128 And the network is unplugged
129 And I start the computer
130 When the computer boots Tails
131 And I log in to a new session
132 And GNOME has started
133 And I have closed all annoying notifications
134 And I create a new 4 GiB USB drive named "old"
135 And I plug USB drive "old"
136 And I "Clone & Install" Tails to USB drive "old"
137 Then Tails is installed on USB drive "old"
138 But there is no persistence partition on USB drive "old"
139 And I unplug USB drive "old"
141 Scenario: Creating a persistent partition with the old Tails USB installation
143 And the computer is set to boot from USB drive "old"
144 And the network is unplugged
145 When I start the computer
146 And the computer boots Tails
147 And Tails is running from USB drive "old"
148 And I log in to a new session
149 And GNOME has started
150 And I have closed all annoying notifications
151 And I create a persistent partition with password "asdf"
152 Then a Tails persistence partition with password "asdf" exists on USB drive "old"
153 And I completely shutdown Tails
155 Scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
157 And the computer is set to boot from USB drive "old"
158 And the network is unplugged
159 When I start the computer
160 And the computer boots Tails
161 And Tails is running from USB drive "old"
162 And I enable persistence with password "asdf"
163 And I log in to a new session
164 And GNOME has started
165 And I have closed all annoying notifications
166 And persistence has been enabled
167 And persistence filesystems have safe access rights
168 And persistence configuration files have safe access rights
169 And I write some files expected to persist
170 And I completely shutdown Tails
171 Then only the expected files should persist on USB drive "old"
173 Scenario: Upgrading an old Tails USB installation from a Tails DVD
175 And I clone USB drive "old" to a new USB drive "to_upgrade"
176 And the computer is set to boot from the Tails DVD
177 And the network is unplugged
178 When I start the computer
179 And the computer boots Tails
180 And I log in to a new session
181 And GNOME has started
182 And I have closed all annoying notifications
183 And I plug USB drive "to_upgrade"
184 And I "Clone & Upgrade" Tails to USB drive "to_upgrade"
185 Then Tails is installed on USB drive "to_upgrade"
186 And I unplug USB drive "to_upgrade"
188 Scenario: Booting Tails from a USB drive upgraded from DVD with persistence enabled
190 And the computer is set to boot from USB drive "to_upgrade"
191 And the network is unplugged
192 When I start the computer
193 And the computer boots Tails
194 And I enable read-only persistence with password "asdf"
195 And I log in to a new session
196 Then Tails seems to have booted normally
197 And Tails is running from USB drive "to_upgrade"
198 And the boot device has safe access rights
199 And the expected persistent files are present in the filesystem
201 Scenario: Upgrading an old Tails USB installation from another Tails USB drive
203 And I clone USB drive "old" to a new USB drive "to_upgrade"
204 And the computer is set to boot from USB drive "current"
205 And the network is unplugged
206 When I start the computer
207 And the computer boots Tails
208 And Tails is running from USB drive "current"
209 And the boot device has safe access rights
210 And I log in to a new session
211 And GNOME has started
212 And I have closed all annoying notifications
213 And I plug USB drive "to_upgrade"
214 And I "Clone & Upgrade" Tails to USB drive "to_upgrade"
215 Then Tails is installed on USB drive "to_upgrade"
216 And I unplug USB drive "to_upgrade"
217 And I unplug USB drive "current"
219 Scenario: Booting Tails from a USB drive upgraded from USB with persistence enabled
221 And the computer is set to boot from USB drive "to_upgrade"
222 And the network is unplugged
223 When I start the computer
224 And the computer boots Tails
225 And I enable read-only persistence with password "asdf"
226 And I log in to a new session
227 Then Tails seems to have booted normally
228 And persistence has been enabled
229 And Tails is running from USB drive "to_upgrade"
230 And the boot device has safe access rights
231 And the expected persistent files are present in the filesystem
233 Scenario: Upgrading an old Tails USB installation from an ISO image
235 And I clone USB drive "old" to a new USB drive "to_upgrade"
236 And the computer is set to boot from the Tails DVD
237 And the network is unplugged
238 And I setup a filesystem share containing the Tails ISO
239 When I start the computer
240 And the computer boots Tails
241 And I log in to a new session
242 And GNOME has started
243 And I have closed all annoying notifications
244 And I plug USB drive "to_upgrade"
245 And I do a "Upgrade from ISO" on USB drive "to_upgrade"
246 Then Tails is installed on USB drive "to_upgrade"
247 And I unplug USB drive "to_upgrade"
249 Scenario: Booting Tails from a USB drive upgraded from ISO with persistence enabled
251 And the computer is set to boot from USB drive "to_upgrade"
252 And the network is unplugged
253 When I start the computer
254 And the computer boots Tails
255 And I enable read-only persistence with password "asdf"
256 And I log in to a new session
257 Then Tails seems to have booted normally
258 And persistence has been enabled
259 And Tails is running from USB drive "to_upgrade"
260 And the boot device has safe access rights
261 And the expected persistent files are present in the filesystem
263 Scenario: Installing Tails to a USB drive with an MBR partition table but no partitions
265 And I create a 2 GiB disk named "mbr"
266 And I create a msdos label on disk "mbr"
267 And the computer is set to boot from the Tails DVD
268 And the network is unplugged
269 And I start the computer
270 When the computer boots Tails
271 And I log in to a new session
272 And GNOME has started
273 And I have closed all annoying notifications
274 And I plug USB drive "mbr"
275 And I "Clone & Install" Tails to USB drive "mbr"
276 Then Tails is installed on USB drive "mbr"
277 But there is no persistence partition on USB drive "mbr"
278 And I unplug USB drive "mbr"
280 Scenario: Booting Tails from a USB drive that originally had an MBR partition table but no partitions, without a persistent partition
282 And the computer is set to boot from USB drive "mbr"
283 And the network is unplugged
284 When I start the computer
285 And the computer boots Tails
286 And I log in to a new session
287 Then Tails seems to have booted normally
288 And Tails is running from USB drive "mbr"
289 And the boot device has safe access rights
290 And there is no persistence partition on USB drive "mbr"
292 Scenario: Cat:ing a Tails isohybrid to a USB drive and booting it
294 And I create a 2 GiB disk named "isohybrid"
295 And I cat an ISO hybrid of the Tails image to disk "isohybrid"
296 And the computer is set to boot from USB drive "isohybrid"
297 And the network is unplugged
298 When I start the computer
299 And the computer boots Tails
300 And I log in to a new session
301 Then Tails seems to have booted normally
302 And Tails is running from USB drive "isohybrid"
304 Scenario: Try upgrading but end up installing Tails to a USB drive containing a Tails isohybrid installation
306 And the computer is set to boot from the Tails DVD
307 And the network is unplugged
308 And I start the computer
309 When the computer boots Tails
310 And I log in to a new session
311 And GNOME has started
312 And I have closed all annoying notifications
313 And I plug USB drive "isohybrid"
314 And I try a "Clone & Upgrade" Tails to USB drive "isohybrid"
315 But I am suggested to do a "Clone & Upgrade"
316 And I kill the process "liveusb-creator"
317 And I "Clone & Install" Tails to USB drive "isohybrid"
318 Then Tails is installed on USB drive "isohybrid"
319 But there is no persistence partition on USB drive "isohybrid"
320 And I unplug USB drive "isohybrid"
322 Scenario: Booting Tails from a USB drive that originally had a Tails isohybrid installation, without a persistent partition
324 And the computer is set to boot from USB drive "isohybrid"
325 And the network is unplugged
326 When I start the computer
327 And the computer boots Tails
328 And I log in to a new session
329 Then Tails seems to have booted normally
330 And Tails is running from USB drive "isohybrid"
331 And the boot device has safe access rights
332 And there is no persistence partition on USB drive "isohybrid"