Integration tests for player page

openid
Marcin Kulik 12 years ago
parent db4c4a397c
commit 0e535b4d43

@ -46,8 +46,9 @@ end
group :test do
gem "rake"
gem "capybara"
gem 'simplecov', :require => false
gem 'capybara', :require => false
gem 'database_cleaner'
end
group :production do

@ -36,17 +36,17 @@ GEM
awesome_print (0.4.0)
builder (3.0.0)
cane (1.3.0)
capybara (1.1.2)
capybara (2.0.0)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
selenium-webdriver (~> 2.0)
xpath (~> 0.1.4)
xpath (~> 1.0.0)
carrierwave (0.5.8)
activesupport (~> 3.0)
childprocess (0.3.0)
ffi (~> 1.0.6)
childprocess (0.3.6)
ffi (~> 1.0, >= 1.0.6)
coderay (1.0.5)
coffee-rails (3.2.2)
coffee-script (>= 2.2.0)
@ -58,12 +58,14 @@ GEM
connection_pool (0.1.0)
daemons (1.1.8)
dalli (2.0.5)
database_cleaner (0.9.1)
diff-lcs (1.1.3)
draper (0.14.0)
actionpack (~> 3.2)
activesupport (~> 3.2)
erubis (2.7.0)
eventmachine (0.12.10)
eventmachine (0.12.10-java)
excon (0.9.6)
execjs (1.3.0)
multi_json (~> 1.0)
@ -76,8 +78,8 @@ GEM
addressable (~> 2.2)
multipart-post (~> 1.1)
rack (~> 1.1)
ffi (1.0.11)
ffi (1.0.11-java)
ffi (1.1.5)
ffi (1.1.5-java)
fog (1.1.2)
builder
excon (~> 0.9.0)
@ -117,26 +119,27 @@ GEM
thor (~> 0.14)
json (1.6.5)
json (1.6.5-java)
json_pure (1.6.5)
kaminari (0.13.0)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
railties (>= 3.0.0)
kgio (2.7.4)
libnotify (0.7.2)
libwebsocket (0.1.6)
websocket
mail (2.4.1)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
method_source (0.7.0)
mime-types (1.17.2)
mime-types (1.19)
multi_json (1.0.4)
multipart-post (1.1.5)
net-scp (1.0.4)
net-ssh (>= 1.99.1)
net-ssh (2.3.0)
nokogiri (1.5.0)
nokogiri (1.5.0-java)
nokogiri (1.5.5)
nokogiri (1.5.5-java)
oauth (0.4.5)
oauth2 (0.5.2)
faraday (~> 0.7)
@ -162,6 +165,11 @@ GEM
coderay (~> 1.0.5)
method_source (~> 0.7)
slop (>= 2.4.4, < 3)
pry (0.9.8.2-java)
coderay (~> 1.0.5)
method_source (~> 0.7)
slop (>= 2.4.4, < 3)
spoon (~> 0.0)
pry-rails (0.1.6)
pry
quiet_assets (1.0.1)
@ -171,7 +179,7 @@ GEM
rack (>= 0.4)
rack-ssl (1.3.2)
rack
rack-test (0.6.1)
rack-test (0.6.2)
rack (>= 1.0)
rails (3.2.1)
actionmailer (= 3.2.1)
@ -207,16 +215,16 @@ GEM
railties (>= 3.0)
rspec (~> 2.8.0)
ruby-hmac (0.4.0)
rubyzip (0.9.5)
rubyzip (0.9.9)
sass (3.1.15)
sass-rails (3.2.4)
railties (~> 3.2.0)
sass (>= 3.1.10)
tilt (~> 1.3)
selenium-webdriver (2.13.0)
childprocess (>= 0.2.1)
ffi (~> 1.0.9)
json_pure
selenium-webdriver (2.26.0)
childprocess (>= 0.2.5)
libwebsocket (~> 0.1.3)
multi_json (~> 1.0)
rubyzip
simple_form (1.5.2)
actionpack (~> 3.0)
@ -226,6 +234,7 @@ GEM
simplecov-html (~> 0.5.3)
simplecov-html (0.5.3)
slop (2.4.4)
spoon (0.0.1)
sprockets (2.1.2)
hike (~> 1.2)
rack (~> 1.0)
@ -250,7 +259,8 @@ GEM
kgio (~> 2.6)
rack
raindrops (~> 0.7)
xpath (0.1.4)
websocket (1.0.2)
xpath (1.0.0)
nokogiri (~> 1.3)
PLATFORMS
@ -265,6 +275,7 @@ DEPENDENCIES
carrierwave
coffee-rails
dalli
database_cleaner
draper
factory_girl_rails
fog

@ -0,0 +1,38 @@
require 'spec_helper'
def uploaded_file(path, type)
ActionDispatch::Http::UploadedFile.new(
:filename => File.basename(path),
:tempfile => File.open(path),
:type => type
)
end
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"),
)
end
def visit_asciicast(id)
asciicast = load_asciicast(id)
visit "/a/#{asciicast.id}"
end
describe 'Asciicast', :type => :feature, :js => true do
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
end
end
end
end

@ -0,0 +1 @@
{"duration":64.2345,"term":{"columns":80,"lines":27}}

Binary file not shown.

Binary file not shown.

@ -8,17 +8,27 @@ require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rails'
require 'capybara/rspec'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
RSpec.configure do |config|
config.mock_with :rspec
config.use_transactional_fixtures = false
config.include ControllerMacros, :type => :controller
config.infer_base_class_for_anonymous_controllers = false
config.use_transactional_fixtures = true
config.include(ControllerMacros, :type => :controller)
config.before(:each) do
DatabaseCleaner.start
end
config.infer_base_class_for_anonymous_controllers = false
config.after(:each) do
DatabaseCleaner.clean
end
end
GirlFriday::Queue.immediate!
DatabaseCleaner.strategy = :truncation

Loading…
Cancel
Save