From 57d0c48b5d51f12c664bebff57cff07cf9ba8cb2 Mon Sep 17 00:00:00 2001 From: Frank von Hoven Date: Sun, 22 Mar 2015 18:36:33 -0500 Subject: [PATCH 1/2] Began date_picker_styler and tests --- .../stylers/ui_date_picker_styler.rb | 22 ++++++++++++++-- spec/stylers/ui_date_picker_styler_spec.rb | 25 +++++++++++++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 spec/stylers/ui_date_picker_styler_spec.rb diff --git a/motion/ruby_motion_query/stylers/ui_date_picker_styler.rb b/motion/ruby_motion_query/stylers/ui_date_picker_styler.rb index 245d8b7..27e984e 100644 --- a/motion/ruby_motion_query/stylers/ui_date_picker_styler.rb +++ b/motion/ruby_motion_query/stylers/ui_date_picker_styler.rb @@ -1,8 +1,26 @@ module RubyMotionQuery module Stylers - class UIDatePickerStyler < UIControlStyler + class UIDatePickerStyler < UIControlStyler + + DATE_PICKER_MODES = { + time: UIDatePickerModeTime, + date: UIDatePickerModeDate, + date_and_time: UIDatePickerModeDateAndTime, + date_time: UIDatePickerModeDateAndTime, + countdown: UIDatePickerModeCountDownTimer, + count_down: UIDatePickerModeCountDownTimer, + count_down_timer: UIDatePickerModeCountDownTimer, + } + + def date_picker_mode=(value) + @view.datePickerMode = DATE_PICKER_MODES[value] || value + end + + def date_picker_mode + @view.datePickerMode + end end end -end +end \ No newline at end of file diff --git a/spec/stylers/ui_date_picker_styler_spec.rb b/spec/stylers/ui_date_picker_styler_spec.rb new file mode 100644 index 0000000..12e4bdf --- /dev/null +++ b/spec/stylers/ui_date_picker_styler_spec.rb @@ -0,0 +1,25 @@ +class StyleSheetForUIViewStylerTests < RubyMotionQuery::Stylesheet + + def ui_date_picker_kitchen_sink(st) + st.date_picker_mode = :date_time + end +end + +describe 'stylers/ui_date_picker' do + before do + @vc = UIViewController.alloc.init + @vc.rmq.stylesheet = StyleSheetForUIViewStylerTests + @view_klass = UIDatePicker + end + + #fails for some reason + #behaves_like "styler" + + it 'can update picker with styler' do + view = @vc.rmq.append(@view_klass, :ui_date_picker_kitchen_sink).get + + view.tap do |v| + v.datePickerMode.should == UIDatePickerModeDateAndTime + end + end +end From 0ea2417da46054f72c11e519fca33a5c6fd40867 Mon Sep 17 00:00:00 2001 From: Frank von Hoven Date: Thu, 26 Mar 2015 14:10:51 -0500 Subject: [PATCH 2/2] Additional Tests --- .../stylers/ui_date_picker_styler.rb | 1 - spec/stylers/_ui_view_styler.rb | 4 +- spec/stylers/ui_date_picker_styler_spec.rb | 67 ++++++++++++++++++- 3 files changed, 68 insertions(+), 4 deletions(-) diff --git a/motion/ruby_motion_query/stylers/ui_date_picker_styler.rb b/motion/ruby_motion_query/stylers/ui_date_picker_styler.rb index 27e984e..6f2cc93 100644 --- a/motion/ruby_motion_query/stylers/ui_date_picker_styler.rb +++ b/motion/ruby_motion_query/stylers/ui_date_picker_styler.rb @@ -8,7 +8,6 @@ class UIDatePickerStyler < UIControlStyler date: UIDatePickerModeDate, date_and_time: UIDatePickerModeDateAndTime, date_time: UIDatePickerModeDateAndTime, - countdown: UIDatePickerModeCountDownTimer, count_down: UIDatePickerModeCountDownTimer, count_down_timer: UIDatePickerModeCountDownTimer, } diff --git a/spec/stylers/_ui_view_styler.rb b/spec/stylers/_ui_view_styler.rb index 2b52872..c54a2f4 100644 --- a/spec/stylers/_ui_view_styler.rb +++ b/spec/stylers/_ui_view_styler.rb @@ -92,6 +92,8 @@ def ui_view_content_mode_symbol(st) @vc.rmq.styler_for(view).view_has_been_styled?.should == true end + # --------------- + it 'should apply a style using the apply_style method' do view = @vc.rmq.append(@view_klass).get @vc.rmq(view).apply_style(:my_style) @@ -129,7 +131,7 @@ def ui_view_content_mode_symbol(st) view = @vc.rmq.append!(@view_klass, :ui_view_kitchen_sink) view.tap do |v| - view.backgroundColor.should == rmq.color.red + view.backgroundColor.should == rmq.color.red unless view.is_a? UIDatePicker # Fails for a UIDatePicker view.isHidden.should.be.true view.tintColor.should == rmq.color.blue view.layer.cornerRadius.should == 5 diff --git a/spec/stylers/ui_date_picker_styler_spec.rb b/spec/stylers/ui_date_picker_styler_spec.rb index 12e4bdf..b7ccd74 100644 --- a/spec/stylers/ui_date_picker_styler_spec.rb +++ b/spec/stylers/ui_date_picker_styler_spec.rb @@ -1,8 +1,32 @@ class StyleSheetForUIViewStylerTests < RubyMotionQuery::Stylesheet def ui_date_picker_kitchen_sink(st) + st.date_picker_mode = :date_and_time + end + + def ui_date_picker_time(st) + st.date_picker_mode = :time + end + + def ui_date_picker_date(st) + st.date_picker_mode = :date + end + + def ui_date_picker_date_time_alias(st) st.date_picker_mode = :date_time end + + def ui_date_picker_count_down_timer(st) + st.date_picker_mode = :count_down_timer + end + + def ui_date_picker_countdown_alias(st) + st.date_picker_mode = :countdown + end + + def ui_date_picker_count_down_alias(st) + st.date_picker_mode = :count_down + end end describe 'stylers/ui_date_picker' do @@ -12,8 +36,7 @@ def ui_date_picker_kitchen_sink(st) @view_klass = UIDatePicker end - #fails for some reason - #behaves_like "styler" + behaves_like "styler" it 'can update picker with styler' do view = @vc.rmq.append(@view_klass, :ui_date_picker_kitchen_sink).get @@ -22,4 +45,44 @@ def ui_date_picker_kitchen_sink(st) v.datePickerMode.should == UIDatePickerModeDateAndTime end end + + it 'can update picker with :time styler' do + view = @vc.rmq.append(@view_klass, :ui_date_picker_time).get + + view.tap do |v| + v.datePickerMode.should == UIDatePickerModeTime + end + end + + it 'can update picker with :date styler' do + view = @vc.rmq.append(@view_klass, :ui_date_picker_date).get + + view.tap do |v| + v.datePickerMode.should == UIDatePickerModeDate + end + end + + it 'uses :date_time as an alias for :date_and_time' do + view = @vc.rmq.append(@view_klass, :ui_date_picker_date_time_alias).get + + view.tap do |v| + v.datePickerMode.should == UIDatePickerModeDateAndTime + end + end + + it 'can update picker with :count_down_timer styler' do + view = @vc.rmq.append(@view_klass, :ui_date_picker_count_down_timer).get + + view.tap do |v| + v.datePickerMode.should == UIDatePickerModeCountDownTimer + end + end + + it 'uses :count_down as an alias for :count_down_timer' do + view = @vc.rmq.append(@view_klass, :ui_date_picker_count_down_alias).get + + view.tap do |v| + v.datePickerMode.should == UIDatePickerModeCountDownTimer + end + end end