summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTails developers <amnesia@boum.org>2013-03-27 13:08:10 +0100
committerTails developers <amnesia@boum.org>2013-03-27 13:08:10 +0100
commit375216ce4041a025d8a0490d1fbfe2dc7dc6c455 (patch)
tree3f3a6e4153d36a8fe2cf56b4c4637cc8e3cc5aec
parent98d4fcbefbc257e51bba3336e29af455fb3136af (diff)
Reorganise features/, unifying both test suites.
Now all .feature:s reside directly in the root of features/, and they are differentiated with tags: source tests are tagged '@source' and product (i.e. Tails ISO image) tests are tagged '@product'. These tags then set up the appropriate environment on a feature-by-feature basis.
-rw-r--r--features/apt.feature (renamed from features/cucumber/apt/apt.feature)1
-rw-r--r--features/build.feature1
-rw-r--r--features/checks.feature (renamed from features/cucumber/misc_tests/checks.feature)1
-rw-r--r--features/cucumber/support/env.rb125
-rw-r--r--features/domains/default.xml (renamed from features/cucumber/domains/default.xml)0
-rw-r--r--features/domains/default_net.xml (renamed from features/cucumber/domains/default_net.xml)0
-rw-r--r--features/domains/disk.xml (renamed from features/cucumber/domains/disk.xml)0
-rw-r--r--features/domains/fs_share.xml (renamed from features/cucumber/domains/fs_share.xml)0
-rw-r--r--features/domains/storage_pool.xml (renamed from features/cucumber/domains/storage_pool.xml)0
-rw-r--r--features/domains/volume.xml (renamed from features/cucumber/domains/volume.xml)0
-rw-r--r--features/encryption.feature (renamed from features/cucumber/gnupg/encryption.feature)1
-rw-r--r--features/erase_memory.feature (renamed from features/cucumber/erase_memory/erase_memory.feature)1
-rw-r--r--features/images/GeditWindow.png (renamed from features/cucumber/images/GeditWindow.png)bin1341 -> 1341 bytes
-rw-r--r--features/images/GnomeApplicationsAccessories.png (renamed from features/cucumber/images/GnomeApplicationsAccessories.png)bin2228 -> 2228 bytes
-rw-r--r--features/images/GnomeApplicationsMenu.png (renamed from features/cucumber/images/GnomeApplicationsMenu.png)bin2375 -> 2375 bytes
-rw-r--r--features/images/GnomeApplicationsTrueCrypt.png (renamed from features/cucumber/images/GnomeApplicationsTrueCrypt.png)bin2527 -> 2527 bytes
-rw-r--r--features/images/GnomeFileDiagTypeFilename.png (renamed from features/cucumber/images/GnomeFileDiagTypeFilename.png)bin1274 -> 1274 bytes
-rw-r--r--features/images/GnomeNotificationX.png (renamed from features/cucumber/images/GnomeNotificationX.png)bin475 -> 475 bytes
-rw-r--r--features/images/GnomeRunDialog.png (renamed from features/cucumber/images/GnomeRunDialog.png)bin2654 -> 2654 bytes
-rw-r--r--features/images/GpgAppletChooseKeyWindow.png (renamed from features/cucumber/images/GpgAppletChooseKeyWindow.png)bin2238 -> 2238 bytes
-rw-r--r--features/images/GpgAppletIconEncrypted.png (renamed from features/cucumber/images/GpgAppletIconEncrypted.png)bin918 -> 918 bytes
-rw-r--r--features/images/GpgAppletIconNormal.png (renamed from features/cucumber/images/GpgAppletIconNormal.png)bin700 -> 700 bytes
-rw-r--r--features/images/GpgAppletIconSigned.png (renamed from features/cucumber/images/GpgAppletIconSigned.png)bin995 -> 995 bytes
-rw-r--r--features/images/GpgAppletResults.png (renamed from features/cucumber/images/GpgAppletResults.png)bin1537 -> 1537 bytes
-rw-r--r--features/images/GpgAppletResultsEncrypted.png (renamed from features/cucumber/images/GpgAppletResultsEncrypted.png)bin1635 -> 1635 bytes
-rw-r--r--features/images/GpgAppletResultsMsg.png (renamed from features/cucumber/images/GpgAppletResultsMsg.png)bin1424 -> 1424 bytes
-rw-r--r--features/images/GpgAppletResultsSigned.png (renamed from features/cucumber/images/GpgAppletResultsSigned.png)bin1738 -> 1738 bytes
-rw-r--r--features/images/IceweaselNoPlugins.png (renamed from features/cucumber/images/IceweaselNoPlugins.png)bin2566 -> 2566 bytes
-rw-r--r--features/images/IceweaselRunning.png (renamed from features/cucumber/images/IceweaselRunning.png)bin1861 -> 1861 bytes
-rw-r--r--features/images/IceweaselTorCheck.png (renamed from features/cucumber/images/IceweaselTorCheck.png)bin11386 -> 11386 bytes
-rw-r--r--features/images/MemoryWipeCompleted.png (renamed from features/cucumber/images/MemoryWipeCompleted.png)bin4864 -> 4864 bytes
-rw-r--r--features/images/PersistenceWizardDone.png (renamed from features/cucumber/images/PersistenceWizardDone.png)bin2969 -> 2969 bytes
-rw-r--r--features/images/PersistenceWizardPresets.png (renamed from features/cucumber/images/PersistenceWizardPresets.png)bin4329 -> 4329 bytes
-rw-r--r--features/images/PersistenceWizardSave.png (renamed from features/cucumber/images/PersistenceWizardSave.png)bin911 -> 911 bytes
-rw-r--r--features/images/PersistenceWizardStart.png (renamed from features/cucumber/images/PersistenceWizardStart.png)bin3426 -> 3426 bytes
-rw-r--r--features/images/PersistenceWizardWindow.png (renamed from features/cucumber/images/PersistenceWizardWindow.png)bin3708 -> 3708 bytes
-rw-r--r--features/images/PinEntryPrompt.png (renamed from features/cucumber/images/PinEntryPrompt.png)bin1647 -> 1647 bytes
-rw-r--r--features/images/PolicyKitAuthPrompt.png (renamed from features/cucumber/images/PolicyKitAuthPrompt.png)bin4507 -> 4507 bytes
-rw-r--r--features/images/SeahorseFindKeysWindow.png (renamed from features/cucumber/images/SeahorseFindKeysWindow.png)bin3276 -> 3276 bytes
-rw-r--r--features/images/SeahorseFoundKeyResult.png (renamed from features/cucumber/images/SeahorseFoundKeyResult.png)bin679 -> 679 bytes
-rw-r--r--features/images/SeahorseWindow.png (renamed from features/cucumber/images/SeahorseWindow.png)bin4624 -> 4624 bytes
-rw-r--r--features/images/SynapticApplyPrompt.png (renamed from features/cucumber/images/SynapticApplyPrompt.png)bin3564 -> 3564 bytes
-rw-r--r--features/images/SynapticChangesAppliedPrompt.png (renamed from features/cucumber/images/SynapticChangesAppliedPrompt.png)bin2111 -> 2111 bytes
-rw-r--r--features/images/SynapticCowsaySearchResult.png (renamed from features/cucumber/images/SynapticCowsaySearchResult.png)bin2291 -> 2291 bytes
-rw-r--r--features/images/SynapticReload.png (renamed from features/cucumber/images/SynapticReload.png)bin2331 -> 2331 bytes
-rw-r--r--features/images/SynapticReloadPrompt.png (renamed from features/cucumber/images/SynapticReloadPrompt.png)bin4126 -> 4126 bytes
-rw-r--r--features/images/SynapticSearch.png (renamed from features/cucumber/images/SynapticSearch.png)bin1489 -> 1489 bytes
-rw-r--r--features/images/TailsBootSplash.png (renamed from features/cucumber/images/TailsBootSplash.png)bin17039 -> 17039 bytes
-rw-r--r--features/images/TailsBootSplashTabMsg.png (renamed from features/cucumber/images/TailsBootSplashTabMsg.png)bin652 -> 652 bytes
-rw-r--r--features/images/TailsEmergencyShutdownButton.png (renamed from features/cucumber/images/TailsEmergencyShutdownButton.png)bin1167 -> 1167 bytes
-rw-r--r--features/images/TailsEmergencyShutdownHalt.png (renamed from features/cucumber/images/TailsEmergencyShutdownHalt.png)bin548 -> 548 bytes
-rw-r--r--features/images/TailsGreeter.png (renamed from features/cucumber/images/TailsGreeter.png)bin2012 -> 2012 bytes
-rw-r--r--features/images/TailsGreeterAdminPassword.png (renamed from features/cucumber/images/TailsGreeterAdminPassword.png)bin2360 -> 2360 bytes
-rw-r--r--features/images/TailsGreeterForward.png (renamed from features/cucumber/images/TailsGreeterForward.png)bin1845 -> 1845 bytes
-rw-r--r--features/images/TailsGreeterLoginButton.png (renamed from features/cucumber/images/TailsGreeterLoginButton.png)bin1441 -> 1441 bytes
-rw-r--r--features/images/TailsGreeterMoreOptions.png (renamed from features/cucumber/images/TailsGreeterMoreOptions.png)bin1593 -> 1593 bytes
-rw-r--r--features/images/TailsGreeterPassword.png (renamed from features/cucumber/images/TailsGreeterPassword.png)bin1336 -> 1336 bytes
-rw-r--r--features/images/TailsGreeterPersistence.png (renamed from features/cucumber/images/TailsGreeterPersistence.png)bin1626 -> 1626 bytes
-rw-r--r--features/images/TailsGreeterPersistencePassphrase.png (renamed from features/cucumber/images/TailsGreeterPersistencePassphrase.png)bin1278 -> 1278 bytes
-rw-r--r--features/images/TailsGreeterPersistenceReadOnly.png (renamed from features/cucumber/images/TailsGreeterPersistenceReadOnly.png)bin1649 -> 1649 bytes
-rw-r--r--features/images/TailsGreeterWinXPCamouflage.png (renamed from features/cucumber/images/TailsGreeterWinXPCamouflage.png)bin3986 -> 3986 bytes
-rw-r--r--features/images/TrueCryptWindow.png (renamed from features/cucumber/images/TrueCryptWindow.png)bin2086 -> 2086 bytes
-rw-r--r--features/images/USBCloneAndInstall.png (renamed from features/cucumber/images/USBCloneAndInstall.png)bin2375 -> 2375 bytes
-rw-r--r--features/images/USBCloneAndUpgrade.png (renamed from features/cucumber/images/USBCloneAndUpgrade.png)bin2804 -> 2804 bytes
-rw-r--r--features/images/USBCreateLiveUSB.png (renamed from features/cucumber/images/USBCreateLiveUSB.png)bin2479 -> 2479 bytes
-rw-r--r--features/images/USBCreateLiveUSBNext.png (renamed from features/cucumber/images/USBCreateLiveUSBNext.png)bin1571 -> 1571 bytes
-rw-r--r--features/images/USBInstallationComplete.png (renamed from features/cucumber/images/USBInstallationComplete.png)bin2914 -> 2914 bytes
-rw-r--r--features/images/USBSelectISO.png (renamed from features/cucumber/images/USBSelectISO.png)bin2315 -> 2315 bytes
-rw-r--r--features/images/USBUpgradeFromISO.png (renamed from features/cucumber/images/USBUpgradeFromISO.png)bin2702 -> 2702 bytes
-rw-r--r--features/images/USBUseLiveSystemISO.png (renamed from features/cucumber/images/USBUseLiveSystemISO.png)bin1894 -> 1894 bytes
-rw-r--r--features/images/UnsafeBrowserAdvancedSettings.png (renamed from features/cucumber/images/UnsafeBrowserAdvancedSettings.png)bin3316 -> 3316 bytes
-rw-r--r--features/images/UnsafeBrowserNetworkTab.png (renamed from features/cucumber/images/UnsafeBrowserNetworkTab.png)bin1364 -> 1364 bytes
-rw-r--r--features/images/UnsafeBrowserPreferences.png (renamed from features/cucumber/images/UnsafeBrowserPreferences.png)bin3325 -> 3325 bytes
-rw-r--r--features/images/UnsafeBrowserProxyRefused.png (renamed from features/cucumber/images/UnsafeBrowserProxyRefused.png)bin4312 -> 4312 bytes
-rw-r--r--features/images/UnsafeBrowserProxySettings.png (renamed from features/cucumber/images/UnsafeBrowserProxySettings.png)bin2963 -> 2963 bytes
-rw-r--r--features/images/UnsafeBrowserRedTheme.png (renamed from features/cucumber/images/UnsafeBrowserRedTheme.png)bin5692 -> 5692 bytes
-rw-r--r--features/images/UnsafeBrowserSearchBar.png (renamed from features/cucumber/images/UnsafeBrowserSearchBar.png)bin1772 -> 1772 bytes
-rw-r--r--features/images/UnsafeBrowserStartNotification.png (renamed from features/cucumber/images/UnsafeBrowserStartNotification.png)bin2962 -> 2962 bytes
-rw-r--r--features/images/UnsafeBrowserStartPage.png (renamed from features/cucumber/images/UnsafeBrowserStartPage.png)bin23482 -> 23482 bytes
-rw-r--r--features/images/UnsafeBrowserStartVerification.png (renamed from features/cucumber/images/UnsafeBrowserStartVerification.png)bin6540 -> 6540 bytes
-rw-r--r--features/images/UnsafeBrowserStopNotification.png (renamed from features/cucumber/images/UnsafeBrowserStopNotification.png)bin3502 -> 3502 bytes
-rw-r--r--features/images/UnsafeBrowserTorCheckFail.png (renamed from features/cucumber/images/UnsafeBrowserTorCheckFail.png)bin14601 -> 14601 bytes
-rw-r--r--features/images/UnsafeBrowserWarnAlreadyRunning.png (renamed from features/cucumber/images/UnsafeBrowserWarnAlreadyRunning.png)bin3096 -> 3096 bytes
-rw-r--r--features/images/UnsafeBrowserWindow.png (renamed from features/cucumber/images/UnsafeBrowserWindow.png)bin3944 -> 3944 bytes
-rw-r--r--features/images/WinXPIceweaselTaskBar.png (renamed from features/cucumber/images/WinXPIceweaselTaskBar.png)bin1096 -> 1096 bytes
-rw-r--r--features/images/WinXPIceweaselWindow.png (renamed from features/cucumber/images/WinXPIceweaselWindow.png)bin1557 -> 1557 bytes
-rw-r--r--features/images/WinXPLaunchers.png (renamed from features/cucumber/images/WinXPLaunchers.png)bin3107 -> 3107 bytes
-rw-r--r--features/images/WinXPNotificationX.png (renamed from features/cucumber/images/WinXPNotificationX.png)bin599 -> 599 bytes
-rw-r--r--features/images/WinXPRunDialog.png (renamed from features/cucumber/images/WinXPRunDialog.png)bin2109 -> 2109 bytes
-rw-r--r--features/images/WinXPStartButton.png (renamed from features/cucumber/images/WinXPStartButton.png)bin4291 -> 4291 bytes
-rw-r--r--features/images/WinXPStartMenu.png (renamed from features/cucumber/images/WinXPStartMenu.png)bin21465 -> 21465 bytes
-rw-r--r--features/images/WinXPSysTray.png (renamed from features/cucumber/images/WinXPSysTray.png)bin3346 -> 3346 bytes
-rw-r--r--features/images/WinXPWindowButtons.png (renamed from features/cucumber/images/WinXPWindowButtons.png)bin2137 -> 2137 bytes
-rw-r--r--features/misc_files/sample.pdf (renamed from features/cucumber/misc_files/sample.pdf)bin22347 -> 22347 bytes
-rw-r--r--features/misc_files/sample.tex (renamed from features/cucumber/misc_files/sample.tex)0
-rw-r--r--features/root_access_control.feature (renamed from features/cucumber/root_access_control/root_access_control.feature)1
-rw-r--r--features/step_definitions/apt.rb (renamed from features/cucumber/apt/step_definitions/apt.rb)0
-rw-r--r--features/step_definitions/checks.rb (renamed from features/cucumber/misc_tests/step_definitions/checks.rb)0
-rw-r--r--features/step_definitions/common_steps.rb (renamed from features/cucumber/step_definitions/common_steps.rb)0
-rw-r--r--features/step_definitions/encryption.rb (renamed from features/cucumber/gnupg/step_definitions/encryption.rb)0
-rw-r--r--features/step_definitions/erase_memory.rb (renamed from features/cucumber/erase_memory/step_definitions/erase_memory.rb)0
-rw-r--r--features/step_definitions/root_access_control.rb (renamed from features/cucumber/root_access_control/step_definitions/root_access_control.rb)0
-rw-r--r--features/step_definitions/time_syncing.rb (renamed from features/cucumber/time_syncing/step_definitions/time_syncing.rb)0
-rw-r--r--features/step_definitions/torified_browsing.rb (renamed from features/cucumber/iceweasel/step_definitions/torified_browsing.rb)0
-rw-r--r--features/step_definitions/torified_gnupg.rb (renamed from features/cucumber/gnupg/step_definitions/torified_gnupg.rb)0
-rw-r--r--features/step_definitions/truecrypt.rb (renamed from features/cucumber/misc_tests/step_definitions/truecrypt.rb)0
-rw-r--r--features/step_definitions/unsafe_browser.rb (renamed from features/cucumber/unsafe_browser/step_definitions/unsafe_browser.rb)0
-rw-r--r--features/step_definitions/untrusted_partitions.rb (renamed from features/cucumber/untrusted_partitions/step_definitions/untrusted_partitions.rb)0
-rw-r--r--features/step_definitions/usb.rb (renamed from features/cucumber/usb/step_definitions/usb.rb)0
-rw-r--r--features/step_definitions/windows_camouflage.rb (renamed from features/cucumber/windows_camouflage/step_definitions/windows_camouflage.rb)0
-rw-r--r--features/support/env.rb6
-rw-r--r--features/support/extra_hooks.rb (renamed from features/cucumber/support/extra_hooks.rb)0
-rw-r--r--features/support/helpers/display_helper.rb (renamed from features/cucumber/support/helpers/display_helper.rb)0
-rw-r--r--features/support/helpers/exec_helper.rb (renamed from features/cucumber/support/helpers/exec_helper.rb)0
-rw-r--r--features/support/helpers/firewall_helper.rb (renamed from features/cucumber/support/helpers/firewall_helper.rb)0
-rw-r--r--features/support/helpers/misc_helpers.rb (renamed from features/cucumber/support/helpers/misc_helpers.rb)0
-rw-r--r--features/support/helpers/net_helper.rb (renamed from features/cucumber/support/helpers/net_helper.rb)0
-rw-r--r--features/support/helpers/sikuli_helper.rb (renamed from features/cucumber/support/helpers/sikuli_helper.rb)2
-rw-r--r--features/support/helpers/storage_helper.rb (renamed from features/cucumber/support/helpers/storage_helper.rb)0
-rw-r--r--features/support/helpers/vm_helper.rb (renamed from features/cucumber/support/helpers/vm_helper.rb)0
-rw-r--r--features/support/hooks.rb133
-rw-r--r--features/time_syncing.feature (renamed from features/cucumber/time_syncing/time_syncing.feature)1
-rw-r--r--features/torified_browsing.feature (renamed from features/cucumber/iceweasel/torified_browsing.feature)1
-rw-r--r--features/torified_gnupg.feature (renamed from features/cucumber/gnupg/torified_gnupg.feature)1
-rw-r--r--features/truecrypt.feature (renamed from features/cucumber/misc_tests/truecrypt.feature)1
-rw-r--r--features/unsafe_browser.feature (renamed from features/cucumber/unsafe_browser/unsafe_browser.feature)1
-rw-r--r--features/untrusted_partitions.feature (renamed from features/cucumber/untrusted_partitions/untrusted_partitions.feature)1
-rw-r--r--features/usb_install.feature (renamed from features/cucumber/usb/usb_install.feature)1
-rw-r--r--features/winxp.feature (renamed from features/cucumber/windows_camouflage/winxp.feature)1
-rwxr-xr-xrun_test_suite31
-rw-r--r--wiki/src/contribute/release_process/test.mdwn25
-rw-r--r--wiki/src/contribute/release_process/test/setup.mdwn3
132 files changed, 180 insertions, 159 deletions
diff --git a/features/cucumber/apt/apt.feature b/features/apt.feature
index 55506fb..b508fb4 100644
--- a/features/cucumber/apt/apt.feature
+++ b/features/apt.feature
@@ -1,3 +1,4 @@
+@product
Feature: Installing packages through APT
As a Tails user
when I set an administration password in Tails Greeter
diff --git a/features/build.feature b/features/build.feature
index c03a213..2e3ad39 100644
--- a/features/build.feature
+++ b/features/build.feature
@@ -1,3 +1,4 @@
+@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
diff --git a/features/cucumber/misc_tests/checks.feature b/features/checks.feature
index 9a65253..cee4938 100644
--- a/features/cucumber/misc_tests/checks.feature
+++ b/features/checks.feature
@@ -1,3 +1,4 @@
+@product
Feature: Various checks
Background:
diff --git a/features/cucumber/support/env.rb b/features/cucumber/support/env.rb
deleted file mode 100644
index 27fa1cd..0000000
--- a/features/cucumber/support/env.rb
+++ /dev/null
@@ -1,125 +0,0 @@
-require 'java'
-require 'rubygems'
-require 'time'
-require 'fileutils'
-require "#{Dir.pwd}/features/cucumber/support/extra_hooks.rb"
-
-def delete_snapshot(snapshot)
- if snapshot and File.exist?(snapshot)
- File.delete(snapshot)
- end
-rescue Errno::EACCES => e
- STDERR.puts "Couldn't delete background snapshot: #{e.to_s}"
-end
-
-def scenario_clean_up
- if @sniffer
- @sniffer.stop
- @sniffer.clear
- end
- @vm.destroy if @vm
-end
-
-def feature_clean_up
- delete_snapshot($background_snapshot) if !$keep_snapshots
- VM.storage.clear_volumes if VM.storage
-end
-
-def delete_all_snapshots
- Dir.glob("#{$tmp_dir}/*.state").each do |snapshot|
- delete_snapshot(snapshot)
- end
-end
-
-def exit_clean_up
- scenario_clean_up
- feature_clean_up
- delete_all_snapshots if !$keep_snapshots
- VM.storage.clear_pool if VM.storage
-end
-
-$time_at_start = Time.now
-$tmp_dir = ENV['TEMP_DIR'] || "/tmp/TailsToaster"
-if File.exist?($tmp_dir)
- if !File.directory?($tmp_dir)
- raise "Temporary directory '#{$tmp_dir}' exists but is not a " +
- "directory"
- end
- if !File.owned?($tmp_dir)
- raise "Temporary directory '#{$tmp_dir}' must be owned by the " +
- "current user"
- end
- FileUtils.chmod(0755, $tmp_dir)
-else
- begin
- Dir.mkdir($tmp_dir)
- rescue Errno::EACCES => e
- raise "Cannot create temporary directory: #{e.to_s}"
- end
-end
-$vm_xml_path = ENV['VM_XML_PATH'] || "#{Dir.pwd}/features/cucumber/domains"
-$misc_files_dir = "#{Dir.pwd}/features/cucumber/misc_files"
-$keep_snapshots = !ENV['KEEP_SNAPSHOTS'].nil?
-delete_all_snapshots if !$keep_snapshots
-$tails_iso = ENV['ISO'] || get_last_iso
-if $tails_iso.nil?
- raise "No Tails ISO image specified, and none could be found in the " +
- "current directory"
-end
-if File.exist?($tails_iso)
- # Workaround: when libvirt takes ownership of the ISO image it may
- # become unreadable for the live user inside the guest in the
- # host-to-guest share used for some tests.
-
- # jruby 1.5.6 doesn't have world_readable? in File or File::Stat so we
- # manually check for it in the mode string
- if !(File.stat($tails_iso).mode & 04)
- if File.owned?($tails_iso)
- chmod(0644, $tails_iso)
- else
- raise "warning: the Tails ISO image must be world readable or be owned" +
- "by the current user to be available inside the guest VM via " +
- "host-to-guest shares, which is required by some tests"
- end
- end
-else
- raise "The specified Tails ISO image '#{$tails_iso}' does not exist"
-end
-$x_display = ENV['DISPLAY']
-$live_user = "amnesia"
-
-at_exit { exit_clean_up }
-
-BeforeFeature do |feature|
- base = File.basename(feature.file, ".feature").to_s
- $background_snapshot = "#{$tmp_dir}/#{base}_background.state"
-end
-
-AfterFeature do
- feature_clean_up
-end
-
-# BeforeScenario
-Before do
- @screen = Sikuli::Screen.new
- if File.size?($background_snapshot)
- @skip_steps_while_restoring_background = true
- else
- @skip_steps_while_restoring_background = false
- end
- @theme = "gnome"
-end
-
-# AfterScenario
-After do |scenario|
- if (scenario.status != :passed)
- time_of_fail = Time.now - $time_at_start
- secs = "%02d" % (time_of_fail % 60)
- mins = "%02d" % ((time_of_fail / 60) % 60)
- hrs = "%02d" % (time_of_fail / (60*60))
- STDERR.puts "Scenario failed at time #{hrs}:#{mins}:#{secs}"
- base = File.basename(scenario.feature.file, ".feature").to_s
- @vm.take_screenshot("#{base}-#{DateTime.now}") if @vm
- end
- scenario_clean_up
-end
diff --git a/features/cucumber/domains/default.xml b/features/domains/default.xml
index fae47df..fae47df 100644
--- a/features/cucumber/domains/default.xml
+++ b/features/domains/default.xml
diff --git a/features/cucumber/domains/default_net.xml b/features/domains/default_net.xml
index 12feef6..12feef6 100644
--- a/features/cucumber/domains/default_net.xml
+++ b/features/domains/default_net.xml
diff --git a/features/cucumber/domains/disk.xml b/features/domains/disk.xml
index 8193fea..8193fea 100644
--- a/features/cucumber/domains/disk.xml
+++ b/features/domains/disk.xml
diff --git a/features/cucumber/domains/fs_share.xml b/features/domains/fs_share.xml
index 718755e..718755e 100644
--- a/features/cucumber/domains/fs_share.xml
+++ b/features/domains/fs_share.xml
diff --git a/features/cucumber/domains/storage_pool.xml b/features/domains/storage_pool.xml
index 3e12f8b..3e12f8b 100644
--- a/features/cucumber/domains/storage_pool.xml
+++ b/features/domains/storage_pool.xml
diff --git a/features/cucumber/domains/volume.xml b/features/domains/volume.xml
index 9159c26..9159c26 100644
--- a/features/cucumber/domains/volume.xml
+++ b/features/domains/volume.xml
diff --git a/features/cucumber/gnupg/encryption.feature b/features/encryption.feature
index 8a3af77..28ee789 100644
--- a/features/cucumber/gnupg/encryption.feature
+++ b/features/encryption.feature
@@ -1,3 +1,4 @@
+@product
Feature: Encryption and verification using GnuPG
As a Tails user
I want to be able to easily encrypt and sign messages using GnuPG
diff --git a/features/cucumber/erase_memory/erase_memory.feature b/features/erase_memory.feature
index 3110705..7f41919 100644
--- a/features/cucumber/erase_memory/erase_memory.feature
+++ b/features/erase_memory.feature
@@ -1,3 +1,4 @@
+@product
Feature: System memory erasure on shutdown
As a Tails user
when I shutdown Tails
diff --git a/features/cucumber/images/GeditWindow.png b/features/images/GeditWindow.png
index 6212cbd..6212cbd 100644
--- a/features/cucumber/images/GeditWindow.png
+++ b/features/images/GeditWindow.png
Binary files differ
diff --git a/features/cucumber/images/GnomeApplicationsAccessories.png b/features/images/GnomeApplicationsAccessories.png
index 22a2886..22a2886 100644
--- a/features/cucumber/images/GnomeApplicationsAccessories.png
+++ b/features/images/GnomeApplicationsAccessories.png
Binary files differ
diff --git a/features/cucumber/images/GnomeApplicationsMenu.png b/features/images/GnomeApplicationsMenu.png
index cb5ec74..cb5ec74 100644
--- a/features/cucumber/images/GnomeApplicationsMenu.png
+++ b/features/images/GnomeApplicationsMenu.png
Binary files differ
diff --git a/features/cucumber/images/GnomeApplicationsTrueCrypt.png b/features/images/GnomeApplicationsTrueCrypt.png
index eb486bd..eb486bd 100644
--- a/features/cucumber/images/GnomeApplicationsTrueCrypt.png
+++ b/features/images/GnomeApplicationsTrueCrypt.png
Binary files differ
diff --git a/features/cucumber/images/GnomeFileDiagTypeFilename.png b/features/images/GnomeFileDiagTypeFilename.png
index d688eb6..d688eb6 100644
--- a/features/cucumber/images/GnomeFileDiagTypeFilename.png
+++ b/features/images/GnomeFileDiagTypeFilename.png
Binary files differ
diff --git a/features/cucumber/images/GnomeNotificationX.png b/features/images/GnomeNotificationX.png
index bb77082..bb77082 100644
--- a/features/cucumber/images/GnomeNotificationX.png
+++ b/features/images/GnomeNotificationX.png
Binary files differ
diff --git a/features/cucumber/images/GnomeRunDialog.png b/features/images/GnomeRunDialog.png
index d7548c5..d7548c5 100644
--- a/features/cucumber/images/GnomeRunDialog.png
+++ b/features/images/GnomeRunDialog.png
Binary files differ
diff --git a/features/cucumber/images/GpgAppletChooseKeyWindow.png b/features/images/GpgAppletChooseKeyWindow.png
index dd3bb31..dd3bb31 100644
--- a/features/cucumber/images/GpgAppletChooseKeyWindow.png
+++ b/features/images/GpgAppletChooseKeyWindow.png
Binary files differ
diff --git a/features/cucumber/images/GpgAppletIconEncrypted.png b/features/images/GpgAppletIconEncrypted.png
index f8963f4..f8963f4 100644
--- a/features/cucumber/images/GpgAppletIconEncrypted.png
+++ b/features/images/GpgAppletIconEncrypted.png
Binary files differ
diff --git a/features/cucumber/images/GpgAppletIconNormal.png b/features/images/GpgAppletIconNormal.png
index 52a064f..52a064f 100644
--- a/features/cucumber/images/GpgAppletIconNormal.png
+++ b/features/images/GpgAppletIconNormal.png
Binary files differ
diff --git a/features/cucumber/images/GpgAppletIconSigned.png b/features/images/GpgAppletIconSigned.png
index 371b1cb..371b1cb 100644
--- a/features/cucumber/images/GpgAppletIconSigned.png
+++ b/features/images/GpgAppletIconSigned.png
Binary files differ
diff --git a/features/cucumber/images/GpgAppletResults.png b/features/images/GpgAppletResults.png
index 21e1944..21e1944 100644
--- a/features/cucumber/images/GpgAppletResults.png
+++ b/features/images/GpgAppletResults.png
Binary files differ
diff --git a/features/cucumber/images/GpgAppletResultsEncrypted.png b/features/images/GpgAppletResultsEncrypted.png
index 19e8f47..19e8f47 100644
--- a/features/cucumber/images/GpgAppletResultsEncrypted.png
+++ b/features/images/GpgAppletResultsEncrypted.png
Binary files differ
diff --git a/features/cucumber/images/GpgAppletResultsMsg.png b/features/images/GpgAppletResultsMsg.png
index f917b31..f917b31 100644
--- a/features/cucumber/images/GpgAppletResultsMsg.png
+++ b/features/images/GpgAppletResultsMsg.png
Binary files differ
diff --git a/features/cucumber/images/GpgAppletResultsSigned.png b/features/images/GpgAppletResultsSigned.png
index be4dde6..be4dde6 100644
--- a/features/cucumber/images/GpgAppletResultsSigned.png
+++ b/features/images/GpgAppletResultsSigned.png
Binary files differ
diff --git a/features/cucumber/images/IceweaselNoPlugins.png b/features/images/IceweaselNoPlugins.png
index ec79929..ec79929 100644
--- a/features/cucumber/images/IceweaselNoPlugins.png
+++ b/features/images/IceweaselNoPlugins.png
Binary files differ
diff --git a/features/cucumber/images/IceweaselRunning.png b/features/images/IceweaselRunning.png
index 22d6764..22d6764 100644
--- a/features/cucumber/images/IceweaselRunning.png
+++ b/features/images/IceweaselRunning.png
Binary files differ
diff --git a/features/cucumber/images/IceweaselTorCheck.png b/features/images/IceweaselTorCheck.png
index 9321788..9321788 100644
--- a/features/cucumber/images/IceweaselTorCheck.png
+++ b/features/images/IceweaselTorCheck.png
Binary files differ
diff --git a/features/cucumber/images/MemoryWipeCompleted.png b/features/images/MemoryWipeCompleted.png
index e7bf33d..e7bf33d 100644
--- a/features/cucumber/images/MemoryWipeCompleted.png
+++ b/features/images/MemoryWipeCompleted.png
Binary files differ
diff --git a/features/cucumber/images/PersistenceWizardDone.png b/features/images/PersistenceWizardDone.png
index d367750..d367750 100644
--- a/features/cucumber/images/PersistenceWizardDone.png
+++ b/features/images/PersistenceWizardDone.png
Binary files differ
diff --git a/features/cucumber/images/PersistenceWizardPresets.png b/features/images/PersistenceWizardPresets.png
index 75244a5..75244a5 100644
--- a/features/cucumber/images/PersistenceWizardPresets.png
+++ b/features/images/PersistenceWizardPresets.png
Binary files differ
diff --git a/features/cucumber/images/PersistenceWizardSave.png b/features/images/PersistenceWizardSave.png
index 7b54109..7b54109 100644
--- a/features/cucumber/images/PersistenceWizardSave.png
+++ b/features/images/PersistenceWizardSave.png
Binary files differ
diff --git a/features/cucumber/images/PersistenceWizardStart.png b/features/images/PersistenceWizardStart.png
index e246561..e246561 100644
--- a/features/cucumber/images/PersistenceWizardStart.png
+++ b/features/images/PersistenceWizardStart.png
Binary files differ
diff --git a/features/cucumber/images/PersistenceWizardWindow.png b/features/images/PersistenceWizardWindow.png
index f792103..f792103 100644
--- a/features/cucumber/images/PersistenceWizardWindow.png
+++ b/features/images/PersistenceWizardWindow.png
Binary files differ
diff --git a/features/cucumber/images/PinEntryPrompt.png b/features/images/PinEntryPrompt.png
index 770e1c8..770e1c8 100644
--- a/features/cucumber/images/PinEntryPrompt.png
+++ b/features/images/PinEntryPrompt.png
Binary files differ
diff --git a/features/cucumber/images/PolicyKitAuthPrompt.png b/features/images/PolicyKitAuthPrompt.png
index b7cab75..b7cab75 100644
--- a/features/cucumber/images/PolicyKitAuthPrompt.png
+++ b/features/images/PolicyKitAuthPrompt.png
Binary files differ
diff --git a/features/cucumber/images/SeahorseFindKeysWindow.png b/features/images/SeahorseFindKeysWindow.png
index 72c818e..72c818e 100644
--- a/features/cucumber/images/SeahorseFindKeysWindow.png
+++ b/features/images/SeahorseFindKeysWindow.png
Binary files differ
diff --git a/features/cucumber/images/SeahorseFoundKeyResult.png b/features/images/SeahorseFoundKeyResult.png
index f321e29..f321e29 100644
--- a/features/cucumber/images/SeahorseFoundKeyResult.png
+++ b/features/images/SeahorseFoundKeyResult.png
Binary files differ
diff --git a/features/cucumber/images/SeahorseWindow.png b/features/images/SeahorseWindow.png
index d54026c..d54026c 100644
--- a/features/cucumber/images/SeahorseWindow.png
+++ b/features/images/SeahorseWindow.png
Binary files differ
diff --git a/features/cucumber/images/SynapticApplyPrompt.png b/features/images/SynapticApplyPrompt.png
index e18897c..e18897c 100644
--- a/features/cucumber/images/SynapticApplyPrompt.png
+++ b/features/images/SynapticApplyPrompt.png
Binary files differ
diff --git a/features/cucumber/images/SynapticChangesAppliedPrompt.png b/features/images/SynapticChangesAppliedPrompt.png
index dd3a6bb..dd3a6bb 100644
--- a/features/cucumber/images/SynapticChangesAppliedPrompt.png
+++ b/features/images/SynapticChangesAppliedPrompt.png
Binary files differ
diff --git a/features/cucumber/images/SynapticCowsaySearchResult.png b/features/images/SynapticCowsaySearchResult.png
index 20a1013..20a1013 100644
--- a/features/cucumber/images/SynapticCowsaySearchResult.png
+++ b/features/images/SynapticCowsaySearchResult.png
Binary files differ
diff --git a/features/cucumber/images/SynapticReload.png b/features/images/SynapticReload.png
index 0b5f2ca..0b5f2ca 100644
--- a/features/cucumber/images/SynapticReload.png
+++ b/features/images/SynapticReload.png
Binary files differ
diff --git a/features/cucumber/images/SynapticReloadPrompt.png b/features/images/SynapticReloadPrompt.png
index 0a6b8a4..0a6b8a4 100644
--- a/features/cucumber/images/SynapticReloadPrompt.png
+++ b/features/images/SynapticReloadPrompt.png
Binary files differ
diff --git a/features/cucumber/images/SynapticSearch.png b/features/images/SynapticSearch.png
index a48d1ad..a48d1ad 100644
--- a/features/cucumber/images/SynapticSearch.png
+++ b/features/images/SynapticSearch.png
Binary files differ
diff --git a/features/cucumber/images/TailsBootSplash.png b/features/images/TailsBootSplash.png
index a77e0fc..a77e0fc 100644
--- a/features/cucumber/images/TailsBootSplash.png
+++ b/features/images/TailsBootSplash.png
Binary files differ
diff --git a/features/cucumber/images/TailsBootSplashTabMsg.png b/features/images/TailsBootSplashTabMsg.png
index 0097273..0097273 100644
--- a/features/cucumber/images/TailsBootSplashTabMsg.png
+++ b/features/images/TailsBootSplashTabMsg.png
Binary files differ
diff --git a/features/cucumber/images/TailsEmergencyShutdownButton.png b/features/images/TailsEmergencyShutdownButton.png
index 4623664..4623664 100644
--- a/features/cucumber/images/TailsEmergencyShutdownButton.png
+++ b/features/images/TailsEmergencyShutdownButton.png
Binary files differ
diff --git a/features/cucumber/images/TailsEmergencyShutdownHalt.png b/features/images/TailsEmergencyShutdownHalt.png
index 7931794..7931794 100644
--- a/features/cucumber/images/TailsEmergencyShutdownHalt.png
+++ b/features/images/TailsEmergencyShutdownHalt.png
Binary files differ
diff --git a/features/cucumber/images/TailsGreeter.png b/features/images/TailsGreeter.png
index 506e5af..506e5af 100644
--- a/features/cucumber/images/TailsGreeter.png
+++ b/features/images/TailsGreeter.png
Binary files differ
diff --git a/features/cucumber/images/TailsGreeterAdminPassword.png b/features/images/TailsGreeterAdminPassword.png
index 2299144..2299144 100644
--- a/features/cucumber/images/TailsGreeterAdminPassword.png
+++ b/features/images/TailsGreeterAdminPassword.png
Binary files differ
diff --git a/features/cucumber/images/TailsGreeterForward.png b/features/images/TailsGreeterForward.png
index b3d9b6d..b3d9b6d 100644
--- a/features/cucumber/images/TailsGreeterForward.png
+++ b/features/images/TailsGreeterForward.png
Binary files differ
diff --git a/features/cucumber/images/TailsGreeterLoginButton.png b/features/images/TailsGreeterLoginButton.png
index c9efa4e..c9efa4e 100644
--- a/features/cucumber/images/TailsGreeterLoginButton.png
+++ b/features/images/TailsGreeterLoginButton.png
Binary files differ
diff --git a/features/cucumber/images/TailsGreeterMoreOptions.png b/features/images/TailsGreeterMoreOptions.png
index f3a6609..f3a6609 100644
--- a/features/cucumber/images/TailsGreeterMoreOptions.png
+++ b/features/images/TailsGreeterMoreOptions.png
Binary files differ
diff --git a/features/cucumber/images/TailsGreeterPassword.png b/features/images/TailsGreeterPassword.png
index 44c264b..44c264b 100644
--- a/features/cucumber/images/TailsGreeterPassword.png
+++ b/features/images/TailsGreeterPassword.png
Binary files differ
diff --git a/features/cucumber/images/TailsGreeterPersistence.png b/features/images/TailsGreeterPersistence.png
index eb32888..eb32888 100644
--- a/features/cucumber/images/TailsGreeterPersistence.png
+++ b/features/images/TailsGreeterPersistence.png
Binary files differ
diff --git a/features/cucumber/images/TailsGreeterPersistencePassphrase.png b/features/images/TailsGreeterPersistencePassphrase.png
index 2a1f0dd..2a1f0dd 100644
--- a/features/cucumber/images/TailsGreeterPersistencePassphrase.png
+++ b/features/images/TailsGreeterPersistencePassphrase.png
Binary files differ
diff --git a/features/cucumber/images/TailsGreeterPersistenceReadOnly.png b/features/images/TailsGreeterPersistenceReadOnly.png
index 49adf97..49adf97 100644
--- a/features/cucumber/images/TailsGreeterPersistenceReadOnly.png
+++ b/features/images/TailsGreeterPersistenceReadOnly.png
Binary files differ
diff --git a/features/cucumber/images/TailsGreeterWinXPCamouflage.png b/features/images/TailsGreeterWinXPCamouflage.png
index ee3e0a3..ee3e0a3 100644
--- a/features/cucumber/images/TailsGreeterWinXPCamouflage.png
+++ b/features/images/TailsGreeterWinXPCamouflage.png
Binary files differ
diff --git a/features/cucumber/images/TrueCryptWindow.png b/features/images/TrueCryptWindow.png
index 6e74181..6e74181 100644
--- a/features/cucumber/images/TrueCryptWindow.png
+++ b/features/images/TrueCryptWindow.png
Binary files differ
diff --git a/features/cucumber/images/USBCloneAndInstall.png b/features/images/USBCloneAndInstall.png
index f1fb5b0..f1fb5b0 100644
--- a/features/cucumber/images/USBCloneAndInstall.png
+++ b/features/images/USBCloneAndInstall.png
Binary files differ
diff --git a/features/cucumber/images/USBCloneAndUpgrade.png b/features/images/USBCloneAndUpgrade.png
index 7be4c4b..7be4c4b 100644
--- a/features/cucumber/images/USBCloneAndUpgrade.png
+++ b/features/images/USBCloneAndUpgrade.png
Binary files differ
diff --git a/features/cucumber/images/USBCreateLiveUSB.png b/features/images/USBCreateLiveUSB.png
index 467c588..467c588 100644
--- a/features/cucumber/images/USBCreateLiveUSB.png
+++ b/features/images/USBCreateLiveUSB.png
Binary files differ
diff --git a/features/cucumber/images/USBCreateLiveUSBNext.png b/features/images/USBCreateLiveUSBNext.png
index 0c81371..0c81371 100644
--- a/features/cucumber/images/USBCreateLiveUSBNext.png
+++ b/features/images/USBCreateLiveUSBNext.png
Binary files differ
diff --git a/features/cucumber/images/USBInstallationComplete.png b/features/images/USBInstallationComplete.png
index 0f9f1f9..0f9f1f9 100644
--- a/features/cucumber/images/USBInstallationComplete.png
+++ b/features/images/USBInstallationComplete.png
Binary files differ
diff --git a/features/cucumber/images/USBSelectISO.png b/features/images/USBSelectISO.png
index c42d059..c42d059 100644
--- a/features/cucumber/images/USBSelectISO.png
+++ b/features/images/USBSelectISO.png
Binary files differ
diff --git a/features/cucumber/images/USBUpgradeFromISO.png b/features/images/USBUpgradeFromISO.png
index 8020f0a..8020f0a 100644
--- a/features/cucumber/images/USBUpgradeFromISO.png
+++ b/features/images/USBUpgradeFromISO.png
Binary files differ
diff --git a/features/cucumber/images/USBUseLiveSystemISO.png b/features/images/USBUseLiveSystemISO.png
index 9656f73..9656f73 100644
--- a/features/cucumber/images/USBUseLiveSystemISO.png
+++ b/features/images/USBUseLiveSystemISO.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserAdvancedSettings.png b/features/images/UnsafeBrowserAdvancedSettings.png
index aa907aa..aa907aa 100644
--- a/features/cucumber/images/UnsafeBrowserAdvancedSettings.png
+++ b/features/images/UnsafeBrowserAdvancedSettings.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserNetworkTab.png b/features/images/UnsafeBrowserNetworkTab.png
index bf7b6bf..bf7b6bf 100644
--- a/features/cucumber/images/UnsafeBrowserNetworkTab.png
+++ b/features/images/UnsafeBrowserNetworkTab.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserPreferences.png b/features/images/UnsafeBrowserPreferences.png
index cbe2ef5..cbe2ef5 100644
--- a/features/cucumber/images/UnsafeBrowserPreferences.png
+++ b/features/images/UnsafeBrowserPreferences.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserProxyRefused.png b/features/images/UnsafeBrowserProxyRefused.png
index 686aac2..686aac2 100644
--- a/features/cucumber/images/UnsafeBrowserProxyRefused.png
+++ b/features/images/UnsafeBrowserProxyRefused.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserProxySettings.png b/features/images/UnsafeBrowserProxySettings.png
index bb43a6d..bb43a6d 100644
--- a/features/cucumber/images/UnsafeBrowserProxySettings.png
+++ b/features/images/UnsafeBrowserProxySettings.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserRedTheme.png b/features/images/UnsafeBrowserRedTheme.png
index 143d730..143d730 100644
--- a/features/cucumber/images/UnsafeBrowserRedTheme.png
+++ b/features/images/UnsafeBrowserRedTheme.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserSearchBar.png b/features/images/UnsafeBrowserSearchBar.png
index 738aa48..738aa48 100644
--- a/features/cucumber/images/UnsafeBrowserSearchBar.png
+++ b/features/images/UnsafeBrowserSearchBar.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserStartNotification.png b/features/images/UnsafeBrowserStartNotification.png
index 1128b4e..1128b4e 100644
--- a/features/cucumber/images/UnsafeBrowserStartNotification.png
+++ b/features/images/UnsafeBrowserStartNotification.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserStartPage.png b/features/images/UnsafeBrowserStartPage.png
index 6de9936..6de9936 100644
--- a/features/cucumber/images/UnsafeBrowserStartPage.png
+++ b/features/images/UnsafeBrowserStartPage.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserStartVerification.png b/features/images/UnsafeBrowserStartVerification.png
index e78479f..e78479f 100644
--- a/features/cucumber/images/UnsafeBrowserStartVerification.png
+++ b/features/images/UnsafeBrowserStartVerification.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserStopNotification.png b/features/images/UnsafeBrowserStopNotification.png
index 0fc2a63..0fc2a63 100644
--- a/features/cucumber/images/UnsafeBrowserStopNotification.png
+++ b/features/images/UnsafeBrowserStopNotification.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserTorCheckFail.png b/features/images/UnsafeBrowserTorCheckFail.png
index d01deb4..d01deb4 100644
--- a/features/cucumber/images/UnsafeBrowserTorCheckFail.png
+++ b/features/images/UnsafeBrowserTorCheckFail.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserWarnAlreadyRunning.png b/features/images/UnsafeBrowserWarnAlreadyRunning.png
index f46faab..f46faab 100644
--- a/features/cucumber/images/UnsafeBrowserWarnAlreadyRunning.png
+++ b/features/images/UnsafeBrowserWarnAlreadyRunning.png
Binary files differ
diff --git a/features/cucumber/images/UnsafeBrowserWindow.png b/features/images/UnsafeBrowserWindow.png
index 858cb6f..858cb6f 100644
--- a/features/cucumber/images/UnsafeBrowserWindow.png
+++ b/features/images/UnsafeBrowserWindow.png
Binary files differ
diff --git a/features/cucumber/images/WinXPIceweaselTaskBar.png b/features/images/WinXPIceweaselTaskBar.png
index 254d2f3..254d2f3 100644
--- a/features/cucumber/images/WinXPIceweaselTaskBar.png
+++ b/features/images/WinXPIceweaselTaskBar.png
Binary files differ
diff --git a/features/cucumber/images/WinXPIceweaselWindow.png b/features/images/WinXPIceweaselWindow.png
index c6790b4..c6790b4 100644
--- a/features/cucumber/images/WinXPIceweaselWindow.png
+++ b/features/images/WinXPIceweaselWindow.png
Binary files differ
diff --git a/features/cucumber/images/WinXPLaunchers.png b/features/images/WinXPLaunchers.png
index 3568a70..3568a70 100644
--- a/features/cucumber/images/WinXPLaunchers.png
+++ b/features/images/WinXPLaunchers.png
Binary files differ
diff --git a/features/cucumber/images/WinXPNotificationX.png b/features/images/WinXPNotificationX.png
index efeb7d2..efeb7d2 100644
--- a/features/cucumber/images/WinXPNotificationX.png
+++ b/features/images/WinXPNotificationX.png
Binary files differ
diff --git a/features/cucumber/images/WinXPRunDialog.png b/features/images/WinXPRunDialog.png
index 71026d5..71026d5 100644
--- a/features/cucumber/images/WinXPRunDialog.png
+++ b/features/images/WinXPRunDialog.png
Binary files differ
diff --git a/features/cucumber/images/WinXPStartButton.png b/features/images/WinXPStartButton.png
index fbdc08e..fbdc08e 100644
--- a/features/cucumber/images/WinXPStartButton.png
+++ b/features/images/WinXPStartButton.png
Binary files differ
diff --git a/features/cucumber/images/WinXPStartMenu.png b/features/images/WinXPStartMenu.png
index 8780349..8780349 100644
--- a/features/cucumber/images/WinXPStartMenu.png
+++ b/features/images/WinXPStartMenu.png
Binary files differ
diff --git a/features/cucumber/images/WinXPSysTray.png b/features/images/WinXPSysTray.png
index da21669..da21669 100644
--- a/features/cucumber/images/WinXPSysTray.png
+++ b/features/images/WinXPSysTray.png
Binary files differ
diff --git a/features/cucumber/images/WinXPWindowButtons.png b/features/images/WinXPWindowButtons.png
index 003ad2a..003ad2a 100644
--- a/features/cucumber/images/WinXPWindowButtons.png
+++ b/features/images/WinXPWindowButtons.png
Binary files differ
diff --git a/features/cucumber/misc_files/sample.pdf b/features/misc_files/sample.pdf
index d0cc950..d0cc950 100644
--- a/features/cucumber/misc_files/sample.pdf
+++ b/features/misc_files/sample.pdf
Binary files differ
diff --git a/features/cucumber/misc_files/sample.tex b/features/misc_files/sample.tex
index 043faae..043faae 100644
--- a/features/cucumber/misc_files/sample.tex
+++ b/features/misc_files/sample.tex
diff --git a/features/cucumber/root_access_control/root_access_control.feature b/features/root_access_control.feature
index f0afbab..3f22419 100644
--- a/features/cucumber/root_access_control/root_access_control.feature
+++ b/features/root_access_control.feature
@@ -1,3 +1,4 @@
+@product
Feature: Root access control enforcement
As a Tails user
when I set an administration password in Tails Greeter
diff --git a/features/cucumber/apt/step_definitions/apt.rb b/features/step_definitions/apt.rb
index 843546f..843546f 100644
--- a/features/cucumber/apt/step_definitions/apt.rb
+++ b/features/step_definitions/apt.rb
diff --git a/features/cucumber/misc_tests/step_definitions/checks.rb b/features/step_definitions/checks.rb
index 3746aaa..3746aaa 100644
--- a/features/cucumber/misc_tests/step_definitions/checks.rb
+++ b/features/step_definitions/checks.rb
diff --git a/features/cucumber/step_definitions/common_steps.rb b/features/step_definitions/common_steps.rb
index 5ad209c..5ad209c 100644
--- a/features/cucumber/step_definitions/common_steps.rb
+++ b/features/step_definitions/common_steps.rb
diff --git a/features/cucumber/gnupg/step_definitions/encryption.rb b/features/step_definitions/encryption.rb
index 1f71899..1f71899 100644
--- a/features/cucumber/gnupg/step_definitions/encryption.rb
+++ b/features/step_definitions/encryption.rb
diff --git a/features/cucumber/erase_memory/step_definitions/erase_memory.rb b/features/step_definitions/erase_memory.rb
index 31b0f01..31b0f01 100644
--- a/features/cucumber/erase_memory/step_definitions/erase_memory.rb
+++ b/features/step_definitions/erase_memory.rb
diff --git a/features/cucumber/root_access_control/step_definitions/root_access_control.rb b/features/step_definitions/root_access_control.rb
index 5c0a681..5c0a681 100644
--- a/features/cucumber/root_access_control/step_definitions/root_access_control.rb
+++ b/features/step_definitions/root_access_control.rb
diff --git a/features/cucumber/time_syncing/step_definitions/time_syncing.rb b/features/step_definitions/time_syncing.rb
index 161a416..161a416 100644
--- a/features/cucumber/time_syncing/step_definitions/time_syncing.rb
+++ b/features/step_definitions/time_syncing.rb
diff --git a/features/cucumber/iceweasel/step_definitions/torified_browsing.rb b/features/step_definitions/torified_browsing.rb
index 2796089..2796089 100644
--- a/features/cucumber/iceweasel/step_definitions/torified_browsing.rb
+++ b/features/step_definitions/torified_browsing.rb
diff --git a/features/cucumber/gnupg/step_definitions/torified_gnupg.rb b/features/step_definitions/torified_gnupg.rb
index a73d0aa..a73d0aa 100644
--- a/features/cucumber/gnupg/step_definitions/torified_gnupg.rb
+++ b/features/step_definitions/torified_gnupg.rb
diff --git a/features/cucumber/misc_tests/step_definitions/truecrypt.rb b/features/step_definitions/truecrypt.rb
index a9b9056..a9b9056 100644
--- a/features/cucumber/misc_tests/step_definitions/truecrypt.rb
+++ b/features/step_definitions/truecrypt.rb
diff --git a/features/cucumber/unsafe_browser/step_definitions/unsafe_browser.rb b/features/step_definitions/unsafe_browser.rb
index 8a779fc..8a779fc 100644
--- a/features/cucumber/unsafe_browser/step_definitions/unsafe_browser.rb
+++ b/features/step_definitions/unsafe_browser.rb
diff --git a/features/cucumber/untrusted_partitions/step_definitions/untrusted_partitions.rb b/features/step_definitions/untrusted_partitions.rb
index 6ae0777..6ae0777 100644
--- a/features/cucumber/untrusted_partitions/step_definitions/untrusted_partitions.rb
+++ b/features/step_definitions/untrusted_partitions.rb
diff --git a/features/cucumber/usb/step_definitions/usb.rb b/features/step_definitions/usb.rb
index 7142de7..7142de7 100644
--- a/features/cucumber/usb/step_definitions/usb.rb
+++ b/features/step_definitions/usb.rb
diff --git a/features/cucumber/windows_camouflage/step_definitions/windows_camouflage.rb b/features/step_definitions/windows_camouflage.rb
index 7e78c77..7e78c77 100644
--- a/features/cucumber/windows_camouflage/step_definitions/windows_camouflage.rb
+++ b/features/step_definitions/windows_camouflage.rb
diff --git a/features/support/env.rb b/features/support/env.rb
index 775484f..38cc542 100644
--- a/features/support/env.rb
+++ b/features/support/env.rb
@@ -1,5 +1,11 @@
+require 'java'
+require 'rubygems'
+require "#{Dir.pwd}/features/support/extra_hooks.rb"
+require 'time'
require 'rspec'
+$time_at_start = Time.now
+
def fatal_system(str)
unless system(str)
raise StandardError.new("Command exited with #{$?}")
diff --git a/features/cucumber/support/extra_hooks.rb b/features/support/extra_hooks.rb
index a8addb3..a8addb3 100644
--- a/features/cucumber/support/extra_hooks.rb
+++ b/features/support/extra_hooks.rb
diff --git a/features/cucumber/support/helpers/display_helper.rb b/features/support/helpers/display_helper.rb
index 0dbac08..0dbac08 100644
--- a/features/cucumber/support/helpers/display_helper.rb
+++ b/features/support/helpers/display_helper.rb
diff --git a/features/cucumber/support/helpers/exec_helper.rb b/features/support/helpers/exec_helper.rb
index 03963c8..03963c8 100644
--- a/features/cucumber/support/helpers/exec_helper.rb
+++ b/features/support/helpers/exec_helper.rb
diff --git a/features/cucumber/support/helpers/firewall_helper.rb b/features/support/helpers/firewall_helper.rb
index d640723..d640723 100644
--- a/features/cucumber/support/helpers/firewall_helper.rb
+++ b/features/support/helpers/firewall_helper.rb
diff --git a/features/cucumber/support/helpers/misc_helpers.rb b/features/support/helpers/misc_helpers.rb
index c9bd7cc..c9bd7cc 100644
--- a/features/cucumber/support/helpers/misc_helpers.rb
+++ b/features/support/helpers/misc_helpers.rb
diff --git a/features/cucumber/support/helpers/net_helper.rb b/features/support/helpers/net_helper.rb
index 5d3976d..5d3976d 100644
--- a/features/cucumber/support/helpers/net_helper.rb
+++ b/features/support/helpers/net_helper.rb
diff --git a/features/cucumber/support/helpers/sikuli_helper.rb b/features/support/helpers/sikuli_helper.rb
index 8541fa5..1377d44 100644
--- a/features/cucumber/support/helpers/sikuli_helper.rb
+++ b/features/support/helpers/sikuli_helper.rb
@@ -43,7 +43,7 @@ end
# Configure sikuli
Sikuli::Config.run do |config|
- config.image_path = "#{Dir.pwd}/features/cucumber/images/"
+ config.image_path = "#{Dir.pwd}/features/images/"
config.logging = false
config.highlight_on_find = false
end
diff --git a/features/cucumber/support/helpers/storage_helper.rb b/features/support/helpers/storage_helper.rb
index 79e646d..79e646d 100644
--- a/features/cucumber/support/helpers/storage_helper.rb
+++ b/features/support/helpers/storage_helper.rb
diff --git a/features/cucumber/support/helpers/vm_helper.rb b/features/support/helpers/vm_helper.rb
index 2c83cbc..2c83cbc 100644
--- a/features/cucumber/support/helpers/vm_helper.rb
+++ b/features/support/helpers/vm_helper.rb
diff --git a/features/support/hooks.rb b/features/support/hooks.rb
index 32d33f8..8908ffb 100644
--- a/features/support/hooks.rb
+++ b/features/support/hooks.rb
@@ -1,12 +1,139 @@
+require 'fileutils'
+require 'time'
require 'tmpdir'
-Before do
+# For @product tests
+####################
+
+def delete_snapshot(snapshot)
+ if snapshot and File.exist?(snapshot)
+ File.delete(snapshot)
+ end
+rescue Errno::EACCES => e
+ STDERR.puts "Couldn't delete background snapshot: #{e.to_s}"
+end
+
+def delete_all_snapshots
+ Dir.glob("#{$tmp_dir}/*.state").each do |snapshot|
+ delete_snapshot(snapshot)
+ end
+end
+
+BeforeFeature('@product') do |feature|
+ $tmp_dir = ENV['TEMP_DIR'] || "/tmp/TailsToaster"
+ if File.exist?($tmp_dir)
+ if !File.directory?($tmp_dir)
+ raise "Temporary directory '#{$tmp_dir}' exists but is not a " +
+ "directory"
+ end
+ if !File.owned?($tmp_dir)
+ raise "Temporary directory '#{$tmp_dir}' must be owned by the " +
+ "current user"
+ end
+ FileUtils.chmod(0755, $tmp_dir)
+ else
+ begin
+ Dir.mkdir($tmp_dir)
+ rescue Errno::EACCES => e
+ raise "Cannot create temporary directory: #{e.to_s}"
+ end
+ end
+ $vm_xml_path = ENV['VM_XML_PATH'] || "#{Dir.pwd}/features/domains"
+ $misc_files_dir = "#{Dir.pwd}/features/misc_files"
+ $keep_snapshots = !ENV['KEEP_SNAPSHOTS'].nil?
+ delete_all_snapshots if !$keep_snapshots
+ $tails_iso = ENV['ISO'] || get_last_iso
+ if $tails_iso.nil?
+ raise "No Tails ISO image specified, and none could be found in the " +
+ "current directory"
+ end
+ if File.exist?($tails_iso)
+ # Workaround: when libvirt takes ownership of the ISO image it may
+ # become unreadable for the live user inside the guest in the
+ # host-to-guest share used for some tests.
+
+ # jruby 1.5.6 doesn't have world_readable? in File or File::Stat so we
+ # manually check for it in the mode string
+ if !(File.stat($tails_iso).mode & 04)
+ if File.owned?($tails_iso)
+ chmod(0644, $tails_iso)
+ else
+ raise "warning: the Tails ISO image must be world readable or be " +
+ "owned by the current user to be available inside the guest " +
+ "VM via host-to-guest shares, which is required by some tests"
+ end
+ end
+ else
+ raise "The specified Tails ISO image '#{$tails_iso}' does not exist"
+ end
+ $x_display = ENV['DISPLAY']
+ $live_user = "amnesia"
+ base = File.basename(feature.file, ".feature").to_s
+ $background_snapshot = "#{$tmp_dir}/#{base}_background.state"
+end
+
+AfterFeature('@product') do
+ delete_snapshot($background_snapshot) if !$keep_snapshots
+ VM.storage.clear_volumes if VM.storage
+end
+
+# BeforeScenario
+Before('@product') do
+ @screen = Sikuli::Screen.new
+ if File.size?($background_snapshot)
+ @skip_steps_while_restoring_background = true
+ else
+ @skip_steps_while_restoring_background = false
+ end
+ @theme = "gnome"
+end
+
+# AfterScenario
+After('@product') do |scenario|
+ if (scenario.status != :passed)
+ time_of_fail = Time.now - $time_at_start
+ secs = "%02d" % (time_of_fail % 60)
+ mins = "%02d" % ((time_of_fail / 60) % 60)
+ hrs = "%02d" % (time_of_fail / (60*60))
+ STDERR.puts "Scenario failed at time #{hrs}:#{mins}:#{secs}"
+ base = File.basename(scenario.feature.file, ".feature").to_s
+ @vm.take_screenshot("#{base}-#{DateTime.now}") if @vm
+ end
+ if @sniffer
+ @sniffer.stop
+ @sniffer.clear
+ end
+ @vm.destroy if @vm
+end
+
+
+# For @source tests
+###################
+
+# BeforeScenario
+Before('@source') do
@orig_pwd = Dir.pwd
@git_clone = Dir.mktmpdir 'tails-apt-tests'
Dir.chdir @git_clone
end
-After do
+# AfterScenario
+After('@source') do
Dir.chdir @orig_pwd
- FileUtils.remove_entry_secure @git_clone
+ # XXX: Seems like JRuby has issues with remove_entry_secure()
+ FileUtils.remove_entry @git_clone
+end
+
+
+# Common
+########
+
+BeforeFeature('@product', '@source') do |feature|
+ raise "Feature #{feature.file} is tagged both @product and @source, " +
+ "which is an impossible combination"
+end
+
+at_exit do
+ delete_all_snapshots if !$keep_snapshots
+ VM.storage.clear_pool if VM.storage
end
diff --git a/features/cucumber/time_syncing/time_syncing.feature b/features/time_syncing.feature
index a4687a8..ef775f2 100644
--- a/features/cucumber/time_syncing/time_syncing.feature
+++ b/features/time_syncing.feature
@@ -1,3 +1,4 @@
+@product
Feature: Time syncing
As a Tails user
I want Tor to work properly
diff --git a/features/cucumber/iceweasel/torified_browsing.feature b/features/torified_browsing.feature
index d178873..abf5339 100644
--- a/features/cucumber/iceweasel/torified_browsing.feature
+++ b/features/torified_browsing.feature
@@ -1,3 +1,4 @@
+@product
Feature: Browsing the web using Iceweasel
As a Tails user
when I browse the web using Iceweasel
diff --git a/features/cucumber/gnupg/torified_gnupg.feature b/features/torified_gnupg.feature
index e7b56a5..93966f6 100644
--- a/features/cucumber/gnupg/torified_gnupg.feature
+++ b/features/torified_gnupg.feature
@@ -1,3 +1,4 @@
+@product
Feature: Keyserver interaction with GnuPG
As a Tails user
when I interact with keyservers using various GnuPG tools
diff --git a/features/cucumber/misc_tests/truecrypt.feature b/features/truecrypt.feature
index d063384..dd8df5a 100644
--- a/features/cucumber/misc_tests/truecrypt.feature
+++ b/features/truecrypt.feature
@@ -1,3 +1,4 @@
+@product
Feature: TrueCrypt
As a Tails user
I *might* want to use TrueCrypt
diff --git a/features/cucumber/unsafe_browser/unsafe_browser.feature b/features/unsafe_browser.feature
index 01a8ba0..b002b63 100644
--- a/features/cucumber/unsafe_browser/unsafe_browser.feature
+++ b/features/unsafe_browser.feature
@@ -1,3 +1,4 @@
+@product
Feature: Browsing the web using the Unsafe Browser
As a Tails user
when I browse the web using the Unsafe Browser
diff --git a/features/cucumber/untrusted_partitions/untrusted_partitions.feature b/features/untrusted_partitions.feature
index 4d49b98..0c0f151 100644
--- a/features/cucumber/untrusted_partitions/untrusted_partitions.feature
+++ b/features/untrusted_partitions.feature
@@ -1,3 +1,4 @@
+@product
Feature: Untrusted partitions
As a Tails user
I don't want to touch other media than the one Tails runs from
diff --git a/features/cucumber/usb/usb_install.feature b/features/usb_install.feature
index 6f6a392..6cf4e18 100644
--- a/features/cucumber/usb/usb_install.feature
+++ b/features/usb_install.feature
@@ -1,3 +1,4 @@
+@product
Feature: Installing Tails to a USB drive, upgrading it, and using persistence
As a Tails user
I may want to install Tails to a USB drive
diff --git a/features/cucumber/windows_camouflage/winxp.feature b/features/winxp.feature
index e5471c7..1cd9a12 100644
--- a/features/cucumber/windows_camouflage/winxp.feature
+++ b/features/winxp.feature
@@ -1,3 +1,4 @@
+@product
Feature: Microsoft Windows XP Camouflage
As a Tails user
when I select the Microsoft Windows XP Camouflage in Tails Greeter
diff --git a/run_test_suite b/run_test_suite
index 567c393..5a717d3 100755
--- a/run_test_suite
+++ b/run_test_suite
@@ -7,11 +7,11 @@ set -e
NAME=$(basename ${0})
usage() {
- echo "Usage: $NAME [OPTION]... ISO [FEATURE]...
+ echo "Usage: $NAME [OPTION]... [FEATURE]...
Tests the FEATUREs (all by default) of ISO. Note that this command must be run
from the Tails source directory.
-Options:
+Options for '@product' features:
--capture=FILE Captures the test session into FILE using VP8 encoding.
Requires ffmpeg and libvpx1.
--keep-snapshots Don't ever delete the background snapshots. This can a big
@@ -23,8 +23,11 @@ Options:
--view Shows the test session in a windows. Requires x11vnc
and xtightvncviewer.
--vnc-server-only Starts a VNC server for the test session. Requires x11vnc.
- --newest-iso Omits the ISO argument; instead we use the ISO image
- with most recent mtime in the current directory
+ --iso IMAGE Test all '@product' features with IMAGE.
+ --newest-iso Like above, but we use the ISO image with most recent
+ mtime in the current directory
+
+Note that '@source' features has no relevant options.
"
}
@@ -92,7 +95,7 @@ capture_session() {
unset CAPTURE_FILE VNC_VIEWER VNC_SERVER
SHORTOPTS="a:c"
-LONGOPTS="view,vnc-server-only,capture:,help,temp-dir:,newest-iso:,keep-snapshots"
+LONGOPTS="view,vnc-server-only,capture:,help,temp-dir:,newest-iso:,keep-snapshots,iso:"
OPTS=$(getopt -o $SHORTOPTS --longoptions $LONGOPTS -n "${NAME}" -- "$@")
eval set -- "$OPTS"
while [ $# -gt 0 ]; do
@@ -116,6 +119,10 @@ while [ $# -gt 0 ]; do
shift
export TEMP_DIR="$(readlink -f $1)"
;;
+ --iso)
+ shift
+ export ISO="$(readlink -f $1)"
+ ;;
--newest-iso)
NEWEST_ISO=yes
unset ISO
@@ -126,22 +133,12 @@ while [ $# -gt 0 ]; do
;;
--)
shift
- if [ -z "${NEWEST_ISO}" ]; then
- if [ -n "$1" ]; then
- export ISO="$(readlink -f $1)"
- shift
- fi
- fi
break
;;
esac
shift
done
-if [ -z "${NEWEST_ISO}" ] && [ -z "${ISO}" ]; then
- error "No ISO provided and --newest-iso not given. Aborting..."
-fi
-
for dep in git libvirt-bin libvirt-dev virt-viewer libsikuli-script-java \
libxslt1-dev libxml2-dev tcpdump xvfb graphicsmagick-imagemagick-compat; do
check_dependency "${dep}"
@@ -166,7 +163,7 @@ export DISPLAY=${TARGET_DISPLAY}
. features/.rvmrc
check_dependency cucumber
if [ -z "${*}" ]; then
- cucumber --format ExtraHooks::Pretty features/cucumber/
+ cucumber --format ExtraHooks::Pretty features
else
- cucumber --format ExtraHooks::Pretty features/cucumber/step_definitions features/cucumber/support ${*}
+ cucumber --format ExtraHooks::Pretty features/step_definitions features/support ${*}
fi
diff --git a/wiki/src/contribute/release_process/test.mdwn b/wiki/src/contribute/release_process/test.mdwn
index eb1f6b1..fa9e6c8 100644
--- a/wiki/src/contribute/release_process/test.mdwn
+++ b/wiki/src/contribute/release_process/test.mdwn
@@ -44,30 +44,31 @@ Check the image size has not changed much since the last release.
# Cucumber
-## "Old" features
-
- $ sudo apt-get install cucumber ruby-rspec
- $ cd $TAILS_GIT_WORKDIR
- $ cucumber
-
-## "New" features
-
Use the `run_test_suite` script found in the Tails source root to run
all automated Cucumber test features. See the [[setup
documentation|test/setup]] in case you don't have a testing
environment yet.
-A typical example run could be:
+It's important to note that some features only depend on the Tails
+sources, and some on the actual product of the sources, i.e. a Tails
+ISO image. These features are tagged `@source` and `@product`,
+respectively. The arguments passed to `run_test_suite` may only affect
+one of these types of features and not the other.
+
+A typical example run of a few `@product` features could be:
./run_test_suite --view --capture test-0.17.webm \
- path/to/tails.iso \
- features/cucumber/iceweasel features/cucumber/erase_memory
+ --iso path/to/tails.iso \
+ features/.feature features/erase_memory.feature
which will test only the `iceweasel` and `erase_memory` features (if
no feature paths are given, all features in `features/cucumber` will
be tested) of the given ISO image `tails.iso` while showing the test
session in a VNC viewer (`--view`) and also capturing it into a video
-called `test-0.17.web` (`--capture`).
+called `test-0.17.web` (`--capture`). Similarly, to test a `@source`
+feature, we'd simply run something like:
+
+ ./run_test_suite features/build.feature
For full instructions, see its `--help`.
diff --git a/wiki/src/contribute/release_process/test/setup.mdwn b/wiki/src/contribute/release_process/test/setup.mdwn
index b2323cf..f8e694d 100644
--- a/wiki/src/contribute/release_process/test/setup.mdwn
+++ b/wiki/src/contribute/release_process/test/setup.mdwn
@@ -14,7 +14,7 @@ and experimental sources added:
apt-get install build-essential curl git xvfb virt-viewer \
libsikuli-script-java libxslt1-dev libxml2-dev tcpdump \
unclutter radvd x11-apps graphicsmagick syslinux libcap2-bin \
- graphicsmagick-imagemagick-compat
+ graphicsmagick-imagemagick-compat devscripts
apt-get -t experimental install qemu-kvm qemu-system-x86 libvirt0 \
libvirt-dev libvirt-bin seabios/unstable dnsmasq-base/unstable
@@ -81,6 +81,7 @@ via RVM. Run the following to install the necessary gems for JRuby:
gem sources -a http://gems.github.com
export JRUBY_OPTS=-Xcext.enabled=true
gem install cucumber \
+ rspec \
sikuli \
ruby-libvirt \
packetfu \