avm-example-app/spec/lib/avm_example_spec.rb

54 lines
1.3 KiB
Ruby
Raw Normal View History

2011-03-23 18:42:54 +00:00
require 'spec_helper'
require 'avm_example'
describe AVMExample do
before { Capybara.app = self.class.describes }
let(:title) { 'Upload an XMP file' }
describe 'GET "index"' do
it "should return a form" do
visit '/'
page.should have_content(title)
page.should have_xpath('//form[@action="/upload" and @method="post" and @enctype="multipart/form-data"]')
within('form') do
page.should have_selector('input[type="file"][name="file"]')
page.should have_selector('input[type="submit"]')
end
end
end
describe 'POST "upload"' do
before { visit '/' }
context 'no file' do
it "should fail" do
click_button("Upload")
page.should have_content(title)
page.should have_content("No file provided!")
end
end
context 'bad xmp file' do
it "should fail" do
attach_file('file', 'spec/xmp/bad.xmp')
click_button("Upload")
page.should have_content(title)
page.should have_content("Bad XMP file!")
end
end
context 'good xmp file' do
it "should fail" do
attach_file('file', 'spec/xmp/good.xmp')
click_button("Upload")
page.should have_content(title)
page.should have_content("Arp's Loop")
page.should have_content("NASA, ESA, and D.")
end
end
end
end