diff options
Diffstat (limited to 'cucumber/features/step_definitions/totem.rb')
-rw-r--r-- | cucumber/features/step_definitions/totem.rb | 43 |
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 |