summaryrefslogtreecommitdiffstats
path: root/cucumber/features/step_definitions/totem.rb
diff options
context:
space:
mode:
Diffstat (limited to 'cucumber/features/step_definitions/totem.rb')
-rw-r--r--cucumber/features/step_definitions/totem.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/cucumber/features/step_definitions/totem.rb b/cucumber/features/step_definitions/totem.rb
new file mode 100644
index 00000000..72698dde
--- /dev/null
+++ b/cucumber/features/step_definitions/totem.rb
@@ -0,0 +1,43 @@
+Given /^I create sample videos$/ do
+ @shared_video_dir_on_host = "#{$config["TMPDIR"]}/shared_video_dir"
+ @shared_video_dir_on_guest = "/tmp/shared_video_dir"
+ FileUtils.mkdir_p(@shared_video_dir_on_host)
+ add_after_scenario_hook { FileUtils.rm_r(@shared_video_dir_on_host) }
+ fatal_system("avconv -loop 1 -t 30 -f image2 " +
+ "-i 'features/images/TailsBootSplash.png' " +
+ "-an -vcodec libx264 -y " +
+ '-filter:v "crop=in_w-mod(in_w\,2):in_h-mod(in_h\,2)" ' +
+ "'#{@shared_video_dir_on_host}/video.mp4' >/dev/null 2>&1")
+end
+
+Given /^I setup a filesystem share containing sample videos$/ do
+ $vm.add_share(@shared_video_dir_on_host, @shared_video_dir_on_guest)
+end
+
+Given /^I copy the sample videos to "([^"]+)" as user "([^"]+)"$/ do |destination, user|
+ for video_on_host in Dir.glob("#{@shared_video_dir_on_host}/*.mp4") do
+ video_name = File.basename(video_on_host)
+ src_on_guest = "#{@shared_video_dir_on_guest}/#{video_name}"
+ dst_on_guest = "#{destination}/#{video_name}"
+ step "I copy \"#{src_on_guest}\" to \"#{dst_on_guest}\" as user \"amnesia\""
+ end
+end
+
+When /^I(?:| try to) open "([^"]+)" with Totem$/ do |filename|
+ step "I run \"totem #{filename}\" in GNOME Terminal"
+end
+
+When /^I close Totem$/ do
+ step 'I kill the process "totem"'
+end
+
+Then /^I can watch a WebM video over HTTPs$/ do
+ test_url = 'https://webm.html5.org/test.webm'
+ recovery_on_failure = Proc.new do
+ step 'I close Totem'
+ end
+ retry_tor(recovery_on_failure) do
+ step "I open \"#{test_url}\" with Totem"
+ @screen.wait("SampleRemoteWebMVideoFrame.png", 120)
+ end
+end