asciinema.org/spec/features/asciicasts_spec.rb

58 lines
1.3 KiB
Ruby
Raw Normal View History

2012-11-18 23:19:42 +00:00
require 'spec_helper'
def uploaded_file(path, type)
ActionDispatch::Http::UploadedFile.new(
:filename => File.basename(path),
:tempfile => File.open(path),
:type => type
)
end
describe 'Asciicast', :type => :feature, :js => true do
def load_asciicast(id)
FactoryGirl.create(
:asciicast,
:meta => uploaded_file(
"spec/fixtures/asciicasts/#{id}/meta.json",
'application/json'
),
:stdout => fixture_file_upload(
"spec/fixtures/asciicasts/#{id}/stdout",
"application/octet-stream"
),
:stdout_timing => fixture_file_upload(
"spec/fixtures/asciicasts/#{id}/stdout.time",
"application/octet-stream"
)
2012-11-18 23:37:25 +00:00
)
end
2012-11-18 23:19:42 +00:00
def visit_asciicast(id)
asciicast = load_asciicast(id)
visit "/a/#{asciicast.id}/raw?speed=2"
end
def inject_on_finished_callback
page.execute_script(<<EOS)
window.player.movie.on('finished', function() {
$('body').append('<span class=\"finished\"></span>');
})
EOS
end
2012-11-18 23:19:42 +00:00
Dir['spec/fixtures/asciicasts/*'].each do |dir|
id = dir[/\d+/]
describe "from fixture #{id}" do
it "successfully plays to the end" do
visit_asciicast(id)
find(".play-button").find(".arrow").click
inject_on_finished_callback
page.should have_selector('body .finished')
2012-11-18 23:19:42 +00:00
end
end
end
end