Skip to content

Commit

Permalink
shifting things around
Browse files Browse the repository at this point in the history
  • Loading branch information
justinfrench committed Mar 1, 2010
1 parent 851a152 commit 79f8bdf
Showing 1 changed file with 67 additions and 69 deletions.
136 changes: 67 additions & 69 deletions spec/inputs/select_input_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,49 @@
end
end

describe 'for boolean columns' do
describe 'default formtastic locale' do
before do
# Note: Works, but something like Formtastic.root.join(...) would probably be "safer".
::I18n.load_path = [File.join(File.dirname(__FILE__), *%w[.. .. lib locale en.yml])]
::I18n.backend.send(:init_translations)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:published, :as => :select))
end
end

after do
::I18n.backend.store_translations :en, {}
end

it 'should render a select with at least options: true/false' do
output_buffer.should have_tag("form li select option[@value='true']", /^Yes$/)
output_buffer.should have_tag("form li select option[@value='false']", /^No$/)
end
end

describe 'custom locale' do
before do
@boolean_select_labels = {:yes => 'Yep', :no => 'Nope'}
::I18n.backend.store_translations :en, :formtastic => @boolean_select_labels

semantic_form_for(@new_post) do |builder|
concat(builder.input(:published, :as => :select))
end
end

after do
::I18n.backend.store_translations :en, {}
end

it 'should render a select with at least options: true/false' do
output_buffer.should have_tag("form li select option[@value='true']", /#{@boolean_select_labels[:yes]}/)
output_buffer.should have_tag("form li select option[@value='false']", /#{@boolean_select_labels[:no]}/)
end
end
end

describe 'for a belongs_to association' do
before do
semantic_form_for(@new_post) do |builder|
Expand Down Expand Up @@ -371,86 +414,41 @@

end

describe 'for boolean columns' do
describe 'default formtastic locale' do
before do
# Note: Works, but something like Formtastic.root.join(...) would probably be "safer".
::I18n.load_path = [File.join(File.dirname(__FILE__), *%w[.. .. lib locale en.yml])]
::I18n.backend.send(:init_translations)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:published, :as => :select))
end
end

after do
::I18n.backend.store_translations :en, {}
end

it 'should render a select with at least options: true/false' do
output_buffer.should have_tag("form li select option[@value='true']", /^Yes$/)
output_buffer.should have_tag("form li select option[@value='false']", /^No$/)
end
describe "enum" do
before do
@output_buffer = ''
@some_meta_descriptions = ["One", "Two", "Three"]
@new_post.stub!(:meta_description).any_number_of_times
end
describe 'custom locale' do

describe ":as is not set" do
before do
@boolean_select_labels = {:yes => 'Yep', :no => 'Nope'}
::I18n.backend.store_translations :en, :formtastic => @boolean_select_labels

semantic_form_for(@new_post) do |builder|
concat(builder.input(:published, :as => :select))
concat(builder.input(:meta_description, :collection => @some_meta_descriptions))
end
semantic_form_for(:project, :url => 'http://test.host') do |builder|
concat(builder.input(:meta_description, :collection => @some_meta_descriptions))
end
end

after do
::I18n.backend.store_translations :en, {}
end

it 'should render a select with at least options: true/false' do
output_buffer.should have_tag("form li select option[@value='true']", /#{@boolean_select_labels[:yes]}/)
output_buffer.should have_tag("form li select option[@value='false']", /#{@boolean_select_labels[:no]}/)

it "should render a select field" do
output_buffer.should have_tag("form li select", :count => 2)
end
end
end

describe "enums" do
describe ":collection is set" do

describe ":as is set" do
before do
@output_buffer = ''
@some_meta_descriptions = ["One", "Two", "Three"]
@new_post.stub!(:meta_description).any_number_of_times
end

describe ":as is not set" do
before do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:meta_description, :collection => @some_meta_descriptions))
end
semantic_form_for(:project, :url => 'http://test.host') do |builder|
concat(builder.input(:meta_description, :collection => @some_meta_descriptions))
end
# Should not be a case, but just checking :as got highest priority in setting input type.
semantic_form_for(@new_post) do |builder|
concat(builder.input(:meta_description, :as => :string, :collection => @some_meta_descriptions))
end

it "should render a select field" do
output_buffer.should have_tag("form li select", :count => 2)
semantic_form_for(:project, :url => 'http://test.host') do |builder|
concat(builder.input(:meta_description, :as => :string, :collection => @some_meta_descriptions))
end
end

describe ":as is set" do
before do
# Should not be a case, but just checking :as got highest priority in setting input type.
semantic_form_for(@new_post) do |builder|
concat(builder.input(:meta_description, :as => :string, :collection => @some_meta_descriptions))
end
semantic_form_for(:project, :url => 'http://test.host') do |builder|
concat(builder.input(:meta_description, :as => :string, :collection => @some_meta_descriptions))
end
end

it "should render a text field" do
output_buffer.should have_tag("form li input[@type='text']", :count => 2)
end

it "should render a text field" do
output_buffer.should have_tag("form li input[@type='text']", :count => 2)
end
end
end
Expand Down

0 comments on commit 79f8bdf

Please sign in to comment.