spec/lib/right_rails/helpers/forms_spec.rb in right-rails-1.1.0 vs spec/lib/right_rails/helpers/forms_spec.rb in right-rails-1.2.0
- old
+ new
@@ -4,77 +4,77 @@
include ActionView::Helpers::TagHelper
include ActionView::Helpers::FormTagHelper
include ActionView::Helpers::JavaScriptHelper
include RightRails::Helpers::Basic
include RightRails::Helpers::Forms
-
+
def url_for(options) options end
def escape_javascript(str) str end
def rightjs_required_files
RightRails::Helpers.required_js_files(self)
end
-
+
before :each do
RightRails::Config.reset!
end
-
+
describe ".calendar_field" do
it "should generate a basic calendar_field_tag" do
- calendar_field_tag('name', 'value').should ==
+ calendar_field_tag('name', 'value').should ==
%Q{<input data-calendar="{}" id="name" name="name" type="text" value="value" />}
rightjs_required_files.should include('right/calendar')
end
it "should generate a calendar_field_tag with options" do
calendar_field_tag('name', 'value', :format => '%Y/%m/%d').should ==
%Q{<input data-calendar="{format:'%Y/%m/%d'}" id="name" }+
%Q{name="name" type="text" value="value" />}
end
-
+
it "should generate a basic calendar_field" do
calendar_field('model', 'method').should ==
%Q{<input data-calendar="{}" id="model_method" name="model[method]" size="30" type="text" />}
end
-
+
it "should generate a calendar_field with options" do
calendar_field('model', 'method', :hide_on_pick => true).should ==
%Q{<input data-calendar="{hideOnPick:true}" id="model_method" }+
%Q{name="model[method]" size="30" type="text" />}
end
-
+
describe "in RightJS 1 mode" do
before :each do
RightRails::Config.rightjs_version = 1
end
-
+
it "should generate a basic calendar_field_tag" do
- calendar_field_tag('name', 'value').should ==
+ calendar_field_tag('name', 'value').should ==
%Q{<input id="name" name="name" rel="calendar" type="text" value="value" />}
rightjs_required_files.should include('right/calendar')
end
it "should generate a calendar_field_tag with options" do
calendar_field_tag('name', 'value', :format => '%Y/%m/%d').should ==
%Q{<input data-calendar-options="{format:'%Y/%m/%d'}" id="name" name="name" }+
%Q{rel="calendar" type="text" value="value" />}
end
-
+
it "should generate a basic calendar_field" do
calendar_field('model', 'method').should ==
%Q{<input id="model_method" name="model[method]" rel="calendar" size="30" type="text" />}
end
-
+
it "should generate a calendar_field with options" do
calendar_field('model', 'method', :hide_on_pick => true).should ==
%Q{<input data-calendar-options="{hideOnPick:true}" id="model_method" }+
%Q{name="model[method]" rel="calendar" size="30" type="text" />}
end
end
end
-
+
describe ".autocomplete_field" do
it "should generate a basic autocomplete_field_tag" do
autocomplete_field_tag('name', 'value', :url => '/foo').should ==
%Q{<input autocomplete="off" data-autocompleter="{url:'/foo'}" id="name" name="name" type="text" value="value" />}
@@ -84,27 +84,27 @@
it "should generate an autocomplete_field_tag with options" do
autocomplete_field_tag('name', 'value', :url => '/foo', :spinner => 'spinner', :min_length => 2).should ==
%Q{<input autocomplete="off" data-autocompleter="{minLength:2,spinner:'spinner',url:'/foo'}" }+
%Q{id="name" name="name" type="text" value="value" />}
end
-
+
it "should generate a basic autocomplete_field" do
autocomplete_field('object', 'method', :url => '/foo').should ==
%Q{<input autocomplete="off" data-autocompleter="{url:'/foo'}" id="object_method" name="object[method]" size="30" type="text" />}
end
-
+
it "should generate an autocomplete_field with options" do
autocomplete_field('object', 'method', :url => '/foo', :fx_name => 'fade').should ==
%Q{<input autocomplete="off" data-autocompleter="{fxName:'fade',url:'/foo'}" id="object_method" }+
%Q{name="object[method]" size="30" type="text" />}
end
-
+
describe "in RightJS 1 mode" do
before :each do
RightRails::Config.rightjs_version = 1
end
-
+
it "should generate a basic autocomplete_field_tag" do
autocomplete_field_tag('name', 'value', :url => '/foo').should ==
%Q{<input autocomplete="off" id="name" name="name" rel="autocompleter[/foo]" type="text" value="value" />}
rightjs_required_files.should include('right/autocompleter')
@@ -113,95 +113,95 @@
it "should generate an autocomplete_field_tag with options" do
autocomplete_field_tag('name', 'value', :url => '/foo', :spinner => 'spinner', :min_length => 2).should ==
%Q{<input autocomplete="off" data-autocompleter-options="{minLength:2,spinner:'spinner'}" }+
%Q{id="name" name="name" rel="autocompleter[/foo]" type="text" value="value" />}
end
-
+
it "should generate a basic autocomplete_field" do
autocomplete_field('object', 'method', :url => '/foo').should ==
%Q{<input autocomplete="off" id="object_method" name="object[method]" rel="autocompleter[/foo]" size="30" type="text" />}
end
-
+
it "should generate an autocomplete_field with options" do
autocomplete_field('object', 'method', :url => '/foo', :fx_name => 'fade').should ==
%Q{<input autocomplete="off" data-autocompleter-options="{fxName:'fade'}" id="object_method" }+
%Q{name="object[method]" rel="autocompleter[/foo]" size="30" type="text" />}
end
end
end
-
+
describe ".slider" do
-
+
it "should generate a basic slider_tag" do
slider_tag('some_field', 22).should ==
%Q{<input id="some_field" name="some_field" type="hidden" value="22" />\n}+
%Q{<script type="text/javascript">\n//<![CDATA[\n}+
%Q{new Slider({value:22}).insertTo('some_field','after').assignTo('some_field');\n}+
%Q{//]]>\n}+
%Q{</script>}
end
-
+
it "should generate a slider_tag with options" do
slider_tag('some_field', 22, :min => 10, :max => 40).should ==
%Q{<input id="some_field" name="some_field" type="hidden" value="22" />\n}+
%Q{<script type="text/javascript">\n//<![CDATA[\n}+
%Q{new Slider({max:40,min:10,value:22}).insertTo('some_field','after').assignTo('some_field');\n}+
%Q{//]]>\n}+
%Q{</script>}
end
-
+
it "should generate a slider with options" do
model = {}
model.should_receive('method').twice.and_return(22)
should_receive(:instance_variable_get).twice.with('@object').and_return(model)
-
+
slider('object', 'method', :value => 22, :min => 20, :max => 80).should ==
%Q{<input id="object_method" name="object[method]" type="hidden" value="22" />\n}+
%Q{<script type="text/javascript">\n//<![CDATA[\n}+
%Q{new Slider({max:80,min:20,value:22}).insertTo('object_method','after').assignTo('object_method');\n}+
%Q{//]]>\n}+
%Q{</script>}
end
end
-
+
describe ".rater" do
it "should generate a simple rater" do
model = {}
model.should_receive('method').twice.and_return(2)
should_receive(:instance_variable_get).twice.with('@object').and_return(model)
-
+
rater('object', 'method', :value => 2).should ==
%Q{<input id="object_method" name="object[method]" type="hidden" value="2" />\n}+
%Q{<script type="text/javascript">\n//<![CDATA[\n}+
%Q{new Rater({value:2}).insertTo('object_method','after').assignTo('object_method');\n}+
%Q{//]]>\n</script>}
end
-
+
it "should generate a #rater_tag" do
rater_tag('some_field', 2).should ==
%Q{<input id="some_field" name="some_field" type="hidden" value="2" />\n}+
%Q{<script type="text/javascript">\n//<![CDATA[\n}+
%Q{new Rater({value:2}).insertTo('some_field','after').assignTo('some_field');\n}+
%Q{//]]>\n</script>}
end
-
+
it "should generate the #rater_display tag" do
rater_display(4).should ==
%Q{<div class="rui-rater rui-rater-disabled">}+
%Q{<div class="active">★</div>}+
%Q{<div class="active">★</div>}+
%Q{<div class="active">★</div>}+
%Q{<div class="active">★</div>}+
%Q{<div>★</div>}+
%Q{</div>}
end
-
+
describe "in RightJS 1 mode" do
before :each do
RightRails::Config.rightjs_version = 1
end
-
+
it "should generate the #rater_display tag" do
rater_display(4).should ==
%Q{<div class="right-rater right-rater-disabled">}+
%Q{<div class="right-rater-glow">★</div>}+
%Q{<div class="right-rater-glow">★</div>}+
@@ -210,50 +210,77 @@
%Q{<div>★</div>}+
%Q{</div>}
end
end
end
-
+
describe ".colorpicker" do
it "should generate a simple colorpicker_field_tag" do
- colorpicker_field_tag('name', '#FF0').should ==
+ colorpicker_field_tag('name', '#FF0').should ==
%Q{<input data-colorpicker="{}" id="name" name="name" type="text" value="#FF0" />}
end
it "should generate a colorpicker_field_tag with options" do
- colorpicker_field_tag('name', '#FF0', :format => 'rgb').should ==
+ colorpicker_field_tag('name', '#FF0', :format => 'rgb').should ==
%Q{<input data-colorpicker="{format:'rgb'}" }+
%Q{id="name" name="name" type="text" value="#FF0" />}
end
-
+
it "should generate a colorpicker_field with options" do
colorpicker_field('object', 'method', :fx_name => 'slide').should ==
%Q{<input data-colorpicker="{fxName:'slide'}" id="object_method" }+
%Q{name="object[method]" size="30" type="text" />}
end
-
+
describe "in RightJS 1 mode" do
before :each do
RightRails::Config.rightjs_version = 1
end
-
+
it "should generate a simple colorpicker_field_tag" do
- colorpicker_field_tag('name', '#FF0').should ==
+ colorpicker_field_tag('name', '#FF0').should ==
%Q{<input id="name" name="name" rel="colorpicker" type="text" value="#FF0" />}
end
it "should generate a colorpicker_field_tag with options" do
- colorpicker_field_tag('name', '#FF0', :format => 'rgb').should ==
+ colorpicker_field_tag('name', '#FF0', :format => 'rgb').should ==
%Q{<input data-colorpicker-options="{format:'rgb'}" }+
%Q{id="name" name="name" rel="colorpicker" type="text" value="#FF0" />}
end
-
+
it "should generate a colorpicker_field with options" do
colorpicker_field('object', 'method', :fx_name => 'slide').should ==
%Q{<input data-colorpicker-options="{fxName:'slide'}" id="object_method" }+
%Q{name="object[method]" rel="colorpicker" size="30" type="text" />}
end
end
end
-
-
+
+ describe ".tags_field" do
+ it "should automatically require the 'right/tags.js' file" do
+ tags_field_tag('name', 'one,two,three')
+ rightjs_required_files.should include('right/tags')
+ end
+
+ it "should generate a simple tags_field_tag" do
+ tags_field_tag('name', 'one,two,three').should ==
+ %Q{<input data-tags="{}" id="name" name="name" type="text" value="one,two,three" />}
+ end
+
+ it "should generate a tags_field_tag with options" do
+ tags_field_tag('name', 'one,two,three', {
+ :tags => ['one', 'two', 'three'],
+ :allow_new => false
+ }).should ==
+ %Q{<input data-tags="{allowNew:false,tags:["one", "two", "three"]}" }+
+ %Q{id="name" name="name" type="text" value="one,two,three" />}
+ end
+
+ it "should generate a tags_field with options" do
+ tags_field('object', 'method', {:tags => ['one', 'two', 'three']}).should ==
+ %Q{<input data-tags="{tags:["one", "two", "three"]}" } +
+ %Q{id="object_method" name="object[method]" size="30" type="text" />}
+ end
+ end
+
+
end
\ No newline at end of file