Skip to content
Browse files

Add spec that shows nested file inputs.

  • Loading branch information...
1 parent 8f637e6 commit a3abe5782c623cda42410e02e9e02e811d6e4a8c @djanowski djanowski committed May 14, 2010
View
22 .gitignore
@@ -1,18 +1,18 @@
-coverage
+*.log
+*.pid
+*.swp
+*.tmproj
.DS_Store
-pkg
+.loadpath
+.project
+bin
+coverage
doc
-ri
email.txt
-.svn
log
-.project
-.loadpath
-*.swp
+pkg
results
+ri
test_apps
-*.tmproj
-*.log
-*.pid
-bin
+tmp
vendor/gems
View
12 spec/integration/rails/app/controllers/webrat_controller.rb
@@ -43,4 +43,16 @@ def show_params
def within
end
+ def file
+ @album = Album.new
+
+ 3.times { @album.photos.build }
+ end
+
+ def post_file
+ album = Album.new(params[:album])
+
+ render :text => "#{album.photos.size} photos."
+ end
+
end
View
4 spec/integration/rails/app/models/album.rb
@@ -0,0 +1,4 @@
+class Album < ActiveRecord::Base
+ has_many :photos
+ accepts_nested_attributes_for :photos
+end
View
3 spec/integration/rails/app/models/photo.rb
@@ -0,0 +1,3 @@
+class Photo < ActiveRecord::Base
+ belongs_to :album
+end
View
14 spec/integration/rails/app/views/webrat/file.html.erb
@@ -0,0 +1,14 @@
+<%- count = 0 %>
+
+<% form_for(@album, :url => post_file_path, :html => {:multipart => true}) do |f| %>
+ <p>
+ <% f.fields_for :photos do |uf| %>
+ <%= uf.label :image, "Photo #{count += 1}" %>
+ <%= uf.file_field :image %><br/>
+ <% end %>
+ </p>
+
+ <p>
+ <%= f.submit 'Create' %>
+ </p>
+<% end %>
View
7 spec/integration/rails/config/database.yml
@@ -0,0 +1,7 @@
+development:
+ adapter: sqlite3
+ database: "tmp/development.sqlite3"
+
+test:
+ adapter: sqlite3
+ database: "tmp/test.sqlite3"
View
2 spec/integration/rails/config/environment.rb
@@ -3,7 +3,7 @@
require File.join(File.dirname(__FILE__), 'boot')
Rails::Initializer.run do |config|
- config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
+ # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
config.time_zone = 'UTC'
config.action_controller.session = {
:session_key => '_rails_app_session',
View
2 spec/integration/rails/config/routes.rb
@@ -13,6 +13,8 @@
webrat.redirect_to_show_params "/redirect_to_show_params", :action => "redirect_to_show_params"
webrat.show_params "/show_params", :action => "show_params"
webrat.within "/within", :action => "within"
+ webrat.file "/file", :action => "file"
+ webrat.post_file "/post_file", :action => "post_file"
webrat.root :action => "form"
end
View
10 spec/integration/rails/db/schema.rb
@@ -0,0 +1,10 @@
+ActiveRecord::Schema.define(:version => 0) do
+ create_table :albums, :force => true do |t|
+ t.string :name
+ end
+
+ create_table :photos, :force => true do |t|
+ t.string :image
+ t.integer :album_id
+ end
+end
View
BIN spec/integration/rails/test/fixtures/image.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
12 spec/integration/rails/test/integration/webrat_test.rb
@@ -107,6 +107,18 @@ def object.id
end
end
+ test "post nested params for files" do
+ visit "/file"
+
+ attach_file "Photo 1", "test/fixtures/image.jpg", "image/jpeg"
+ attach_file "Photo 2", "test/fixtures/image.jpg", "image/jpeg"
+ attach_file "Photo 3", "test/fixtures/image.jpg", "image/jpeg"
+
+ click_button "Create"
+
+ assert_contain "3 photos."
+ end
+
# Firefox detects and prevents infinite redirects under Selenium
unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
test "should detect infinite redirects" do
View
1 spec/integration/rails/test/test_helper.rb
@@ -1,5 +1,6 @@
ENV["RAILS_ENV"] = "test"
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
+load File.expand_path(File.dirname(__FILE__) + "/../db/schema.rb")
require 'test_help'
# begin

0 comments on commit a3abe57

Please sign in to comment.
Something went wrong with that request. Please try again.