bootstrap_datepicker_spec 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9445dacd1a54e5a44c7f61bc95797ea08049e5e8
4
- data.tar.gz: b88a0e4d9674eb3b664c6ab90b615fde2375c581
3
+ metadata.gz: 4e40ca9f7076a6ae529d4ca288777091f85c935a
4
+ data.tar.gz: 101676991722ac46362aa3494b18ead501703cbb
5
5
  SHA512:
6
- metadata.gz: 6c457cf016cade273e93573b62a7bcdc20ba32834dc99ce1b8884e9de2eed299832b9d61f3dceae42d4e4e3d4e2b7d2119eae97d6d85b3b0571c43a49b5f3dcb
7
- data.tar.gz: b3ca7df87f99523ce199896b2858a4fde27f42bdd96eac2369b03fd804b00d082f5b029085e14f75199866df318171195568bb5c544803898919e0af2a60cd02
6
+ metadata.gz: 0ed8d347ba5347140caea139d383f010e65fcc68fed5412c9e995dfd62a76221b07fd6738a88ebb565a3b56b9f13315a50b426359601f63a5c5e41bb48ce1eb2
7
+ data.tar.gz: d0e076d3c0d914def8505fbe2128e25919cc946570115001ac265289a575378a3bbe6e4e13a5ccf4868193ade338cffc7ced0b5ed0cbe4d72067a681be541d04
@@ -14,10 +14,47 @@ module BootstrapDatepickerSpec
14
14
  end
15
15
  end
16
16
 
17
- def select_date(date_string)
18
- date = Chronic.parse(date_string)
19
- @node.set "#{date.to_s}\e"
20
- @node.first(:xpath, './../..').trigger("click")
17
+ def select_date(value_string)
18
+ value = Date.parse(value_string)
19
+ @node.click
20
+
21
+ page = @node.send(:session)
22
+
23
+ picker = page.find('.datepicker')
24
+
25
+ picker_years = picker.find('.datepicker-years', visible: false)
26
+ picker_months = picker.find('.datepicker-months', visible: false)
27
+ picker_days = picker.find('.datepicker-days', visible: false)
28
+
29
+ picker_current_decade = picker_years.find('th.datepicker-switch', visible: false)
30
+ picker_current_year = picker_months.find('th.datepicker-switch', visible: false)
31
+ picker_current_month = picker_days.find('th.datepicker-switch', visible: false)
32
+
33
+ picker_current_month.trigger("click") if picker_days.visible?
34
+ picker_current_year.trigger("click") if picker_months.visible?
35
+
36
+ decade_start, decade_end = picker_current_decade.text.split('-').map(&:to_i)
37
+
38
+ if value.year < decade_start.to_i
39
+ gap = decade_start / 10 - value.year / 10
40
+ gap.times { picker_years.find('th.prev').trigger("click") }
41
+ elsif value.year > decade_end
42
+ gap = value.year / 10 - decade_end / 10
43
+ gap.times { picker_years.find('th.next').trigger("click") }
44
+ end
45
+
46
+ picker_years.find('.year', text: value.year).trigger("click")
47
+ picker_months.find('.month', text: value.strftime('%b')).trigger("click")
48
+ day_xpath = <<-eos
49
+ .//*[contains(concat(' ', @class, ' '), ' day ')
50
+ and not(contains(concat(' ', @class, ' '), ' old '))
51
+ and not(contains(concat(' ', @class, ' '), ' new '))
52
+ and normalize-space(text())='#{value.day}']
53
+ eos
54
+ picker_days.find(:xpath, day_xpath).trigger :click
55
+
56
+ fail if Date.parse(@node.value) != value
57
+ # fail unless page.has_no_css? '.datepicker'
21
58
  end
22
59
 
23
60
  def date_string
@@ -1,3 +1,3 @@
1
1
  module BootstrapDatepickerSpec
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap_datepicker_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Rittersdorf
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-05 00:00:00.000000000 Z
11
+ date: 2015-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec