jqueryui_widgets 0.6 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +8 -0
- data/features/datepicker.feature +24 -0
- data/features/html/datepicker.html +26 -0
- data/features/slider.feature +1 -1
- data/features/step_definitions/datepicker_steps.rb +39 -0
- data/features/support/pages/datepicker_page.rb +9 -0
- data/lib/jqueryui_widgets/datepicker.rb +91 -0
- data/lib/jqueryui_widgets/version.rb +1 -1
- data/lib/jqueryui_widgets.rb +2 -0
- metadata +13 -4
data/ChangeLog
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
== Version 0.7.1 / 2013-6-3
|
2
|
+
* Bug Fixes
|
3
|
+
* Fixed bug with Datepicker widget
|
4
|
+
|
5
|
+
== Version 0.7 / 2013-6-3
|
6
|
+
* Enhancements
|
7
|
+
* Added in functionality and documentation for Datepicker widget
|
8
|
+
|
1
9
|
== Version 0.6 / 2013-5-24
|
2
10
|
* Enhancements
|
3
11
|
* New functionality from Page Object
|
@@ -0,0 +1,24 @@
|
|
1
|
+
Feature: Using the JQueryUI Datepicker widget
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given I am on the datepicker page
|
5
|
+
|
6
|
+
|
7
|
+
Scenario: Selecting a calendar date
|
8
|
+
When I enter the date "05/10/2013"
|
9
|
+
And I select day "25"
|
10
|
+
Then the date should be "05/25/2013"
|
11
|
+
|
12
|
+
@focus
|
13
|
+
Scenario: Adjusting the month by arrow clicks
|
14
|
+
When I enter the date "05/10/2013"
|
15
|
+
Then the day should be "10" the month should be "May" and the year should be "2013"
|
16
|
+
And I click on the Previous Month arrow
|
17
|
+
Then the day should be "" the month should be "April" and the year should be "2013"
|
18
|
+
And I click on the Next Month arrow
|
19
|
+
Then the day should be "10" the month should be "May" and the year should be "2013"
|
20
|
+
|
21
|
+
Scenario: Selecting a second date picker
|
22
|
+
When I enter the date "05/10/2013" in the second date picker
|
23
|
+
And I select day "25"
|
24
|
+
Then the date of the second datepicker should be "05/25/2013"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
|
3
|
+
<html lang="en">
|
4
|
+
<head>
|
5
|
+
<meta charset="utf-8" />
|
6
|
+
<title>jQuery UI Datepicker - Default functionality</title>
|
7
|
+
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
|
8
|
+
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
|
9
|
+
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
|
10
|
+
<link rel="stylesheet" href="/resources/demos/style.css" />
|
11
|
+
<script>
|
12
|
+
$(function() {
|
13
|
+
$( "#datepicker1" ).datepicker();
|
14
|
+
$( "#datepicker2" ).datepicker();
|
15
|
+
});
|
16
|
+
</script>
|
17
|
+
</head>
|
18
|
+
<body>
|
19
|
+
|
20
|
+
<p>Date: <input type="text" id="datepicker1" /></p>
|
21
|
+
|
22
|
+
|
23
|
+
<p>Date: <input type="text" id="datepicker2" /></p>
|
24
|
+
|
25
|
+
</body>
|
26
|
+
</html>
|
data/features/slider.feature
CHANGED
@@ -10,5 +10,5 @@ Feature: Using the JQueryUI Slider Widget
|
|
10
10
|
Then the current value of the slider should be "0%"
|
11
11
|
|
12
12
|
Scenario: Setting the Slider to a specific value
|
13
|
-
When I move the slider to "
|
13
|
+
When I move the slider to "10%"
|
14
14
|
Then the current value of the slider should be "10%"
|
@@ -0,0 +1,39 @@
|
|
1
|
+
Given(/^I am on the datepicker page$/) do
|
2
|
+
visit DatepickerPage
|
3
|
+
end
|
4
|
+
|
5
|
+
When(/^I select day "(\d+)"$/) do |day|
|
6
|
+
on(DatepickerPage).datepicker_one_select_day day
|
7
|
+
end
|
8
|
+
|
9
|
+
Then(/^the date should be "([^\"]*)"$/) do |day|
|
10
|
+
on(DatepickerPage).datepicker_one.should == day
|
11
|
+
end
|
12
|
+
|
13
|
+
When(/^I enter the date "([^\"]*)"$/) do |date|
|
14
|
+
on(DatepickerPage).datepicker_one = date
|
15
|
+
end
|
16
|
+
|
17
|
+
When(/^I click on the Previous Month arrow$/) do
|
18
|
+
on(DatepickerPage).datepicker_one_previous_month
|
19
|
+
end
|
20
|
+
|
21
|
+
Then(/^the day should be "(\d*)" the month should be "(\w+)" and the year should be "(\d+)"$/) do |day, month, year|
|
22
|
+
on(DatepickerPage) do |page|
|
23
|
+
page.datepicker_one_day.should == day unless page.datepicker_one_day == nil
|
24
|
+
page.datepicker_one_month.should == month
|
25
|
+
page.datepicker_one_year.should == year
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
When(/^I click on the Next Month arrow$/) do
|
30
|
+
on(DatepickerPage).datepicker_one_next_month
|
31
|
+
end
|
32
|
+
|
33
|
+
When(/^I enter the date "([^\"]*)" in the second date picker$/) do |date|
|
34
|
+
on(DatepickerPage).datepicker_two = date
|
35
|
+
end
|
36
|
+
|
37
|
+
Then(/^the date of the second datepicker should be "([^\"]*)"$/) do |date|
|
38
|
+
on(DatepickerPage).datepicker_two.should == date
|
39
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class DatepickerPage
|
2
|
+
include PageObject
|
3
|
+
|
4
|
+
page_url "file://#{File.expand_path(File.dirname(__FILE__) + '/../../html/datepicker.html')}"
|
5
|
+
|
6
|
+
jqueryui_datepicker(:datepicker_one, :id => 'datepicker1')
|
7
|
+
jqueryui_datepicker(:datepicker_two, :id => 'datepicker2')
|
8
|
+
|
9
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
|
2
|
+
#
|
3
|
+
# Class that wraps around the Datepicker widget, allowing for the
|
4
|
+
# user to interact with single or multiple Datepicker widgets, as
|
5
|
+
# long as only a single Datepicker is active.
|
6
|
+
#
|
7
|
+
# NOTE: We've kept to the basic functionality of the Datepicker
|
8
|
+
# widget, allowing for extendability of the class, and to avoid
|
9
|
+
# any difficulty by focusing on minutiae.
|
10
|
+
#
|
11
|
+
|
12
|
+
class JQueryUIWidgets::Datepicker < PageObject::Elements::TextField
|
13
|
+
|
14
|
+
#
|
15
|
+
# Generates nine methods.
|
16
|
+
#
|
17
|
+
# The {NAME}= method allows the user to set the value
|
18
|
+
# of the text field that generates the Datepicker widget.
|
19
|
+
#
|
20
|
+
# The {NAME} method returns the value of the Datepicker text field.
|
21
|
+
#
|
22
|
+
# The {NAME}_select_day method allows the user to pass in a variable to
|
23
|
+
# search through the Datepicker widget table and click on that variable,
|
24
|
+
# in this case the day.
|
25
|
+
#
|
26
|
+
# @params: [variable] the day to find.
|
27
|
+
#
|
28
|
+
# @example:
|
29
|
+
# datepicker_select_day '10'
|
30
|
+
# Will search through the datepicker table and click on the 10th
|
31
|
+
# day of the month.
|
32
|
+
#
|
33
|
+
# The {NAME}_next_month method will click the next month arrow,
|
34
|
+
# setting the datepicker widget to the next month.
|
35
|
+
#
|
36
|
+
# The {NAME}_previous_month method will click the previous month
|
37
|
+
# arrow, setting the datepicker widget to the previous month.
|
38
|
+
#
|
39
|
+
# The {NAME}_day method will search through the datepicker table
|
40
|
+
# and return the day with the class of 'ui-state-active', which is
|
41
|
+
# the current day according to the widget.
|
42
|
+
#
|
43
|
+
# The {NAME}_month method will return the month header of the
|
44
|
+
# datepicker table, and return the current month.
|
45
|
+
#
|
46
|
+
# The {NAME}_year method will return the year header of the
|
47
|
+
# datepicker table, and return the current year.
|
48
|
+
#
|
49
|
+
def self.accessor_methods(accessor, name)
|
50
|
+
accessor.send :define_method, "#{name}=" do |date|
|
51
|
+
self.send("#{name}_element").value = date
|
52
|
+
end
|
53
|
+
|
54
|
+
accessor.send :define_method, name do
|
55
|
+
self.send("#{name}_element").value
|
56
|
+
end
|
57
|
+
|
58
|
+
accessor.send :define_method, "#{name}_select_day" do |day|
|
59
|
+
datepicker_div.table_element.link_element(:text => day).click
|
60
|
+
end
|
61
|
+
|
62
|
+
accessor.send :define_method, "#{name}_next_month" do
|
63
|
+
datepicker_div.link_element(:class => 'ui-datepicker-next').click
|
64
|
+
end
|
65
|
+
|
66
|
+
accessor.send :define_method, "#{name}_previous_month" do
|
67
|
+
datepicker_div.link_element(:class => 'ui-datepicker-prev').click
|
68
|
+
end
|
69
|
+
|
70
|
+
accessor.send :define_method, "#{name}_day" do
|
71
|
+
datepicker_div.table_element.link_element(:class => 'ui-state-active').text unless datepicker_div.table_element.link_element.attribute('class' => 'ui-state-active') == nil
|
72
|
+
end
|
73
|
+
|
74
|
+
accessor.send :define_method, "#{name}_month" do
|
75
|
+
datepicker_div.div_element(:class => 'ui-datepicker-title').span_element(:class => 'ui-datepicker-month').text
|
76
|
+
end
|
77
|
+
|
78
|
+
accessor.send :define_method, "#{name}_year" do
|
79
|
+
datepicker_div.div_element(:class => 'ui-datepicker-title').span_element(:class => 'ui-datepicker-year').text
|
80
|
+
end
|
81
|
+
|
82
|
+
accessor.send :define_method, "datepicker_div" do
|
83
|
+
self.send "div_element", :id => 'ui-datepicker-div'
|
84
|
+
end
|
85
|
+
|
86
|
+
accessor.send :private, :datepicker_div
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
end
|
data/lib/jqueryui_widgets.rb
CHANGED
@@ -7,6 +7,7 @@ require 'jqueryui_widgets/menus'
|
|
7
7
|
require 'jqueryui_widgets/accordion'
|
8
8
|
require 'jqueryui_widgets/slider'
|
9
9
|
require 'jqueryui_widgets/spinner'
|
10
|
+
require 'jqueryui_widgets/datepicker'
|
10
11
|
|
11
12
|
module JQueryUIWidgets
|
12
13
|
|
@@ -17,5 +18,6 @@ module JQueryUIWidgets
|
|
17
18
|
PageObject.register_widget(:jqueryui_accordion, JQueryUIWidgets::Accordion, 'div')
|
18
19
|
PageObject.register_widget(:jqueryui_slider, JQueryUIWidgets::Slider, 'div')
|
19
20
|
PageObject.register_widget(:jqueryui_spinner, JQueryUIWidgets::Spinner, 'span')
|
21
|
+
PageObject.register_widget(:jqueryui_datepicker, JQueryUIWidgets::Datepicker, 'text_field')
|
20
22
|
|
21
23
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jqueryui_widgets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.7.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-06-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: page-object
|
@@ -79,8 +79,10 @@ files:
|
|
79
79
|
- cucumber.yml
|
80
80
|
- features/accordion.feature
|
81
81
|
- features/basic_dialog.feature
|
82
|
+
- features/datepicker.feature
|
82
83
|
- features/html/accordion.html
|
83
84
|
- features/html/basic_dialog.html
|
85
|
+
- features/html/datepicker.html
|
84
86
|
- features/html/jquery-1.9.1.js
|
85
87
|
- features/html/jquery-ui.css
|
86
88
|
- features/html/jquery-ui.js
|
@@ -97,6 +99,7 @@ files:
|
|
97
99
|
- features/step_definitions/accordion_steps.rb
|
98
100
|
- features/step_definitions/basic_dialog_steps.rb
|
99
101
|
- features/step_definitions/common_steps.rb
|
102
|
+
- features/step_definitions/datepicker_steps.rb
|
100
103
|
- features/step_definitions/menu_steps.rb
|
101
104
|
- features/step_definitions/progress_bar_steps.rb
|
102
105
|
- features/step_definitions/slider_steps.rb
|
@@ -106,6 +109,7 @@ files:
|
|
106
109
|
- features/support/hooks.rb
|
107
110
|
- features/support/pages/accordion_page.rb
|
108
111
|
- features/support/pages/basic_dialog_page.rb
|
112
|
+
- features/support/pages/datepicker_page.rb
|
109
113
|
- features/support/pages/menu_page.rb
|
110
114
|
- features/support/pages/progress_bar_page.rb
|
111
115
|
- features/support/pages/slider_page.rb
|
@@ -117,6 +121,7 @@ files:
|
|
117
121
|
- lib/jqueryui_widgets/accordion.rb
|
118
122
|
- lib/jqueryui_widgets/basic_dialog.rb
|
119
123
|
- lib/jqueryui_widgets/core_ext/string.rb
|
124
|
+
- lib/jqueryui_widgets/datepicker.rb
|
120
125
|
- lib/jqueryui_widgets/menus.rb
|
121
126
|
- lib/jqueryui_widgets/progress_bar.rb
|
122
127
|
- lib/jqueryui_widgets/slider.rb
|
@@ -137,7 +142,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
142
|
version: '0'
|
138
143
|
segments:
|
139
144
|
- 0
|
140
|
-
hash:
|
145
|
+
hash: 2199466347650544573
|
141
146
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
147
|
none: false
|
143
148
|
requirements:
|
@@ -146,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
151
|
version: '0'
|
147
152
|
segments:
|
148
153
|
- 0
|
149
|
-
hash:
|
154
|
+
hash: 2199466347650544573
|
150
155
|
requirements: []
|
151
156
|
rubyforge_project:
|
152
157
|
rubygems_version: 1.8.25
|
@@ -156,8 +161,10 @@ summary: Wrapper around jQueryUI controls for use with page-object gem
|
|
156
161
|
test_files:
|
157
162
|
- features/accordion.feature
|
158
163
|
- features/basic_dialog.feature
|
164
|
+
- features/datepicker.feature
|
159
165
|
- features/html/accordion.html
|
160
166
|
- features/html/basic_dialog.html
|
167
|
+
- features/html/datepicker.html
|
161
168
|
- features/html/jquery-1.9.1.js
|
162
169
|
- features/html/jquery-ui.css
|
163
170
|
- features/html/jquery-ui.js
|
@@ -174,6 +181,7 @@ test_files:
|
|
174
181
|
- features/step_definitions/accordion_steps.rb
|
175
182
|
- features/step_definitions/basic_dialog_steps.rb
|
176
183
|
- features/step_definitions/common_steps.rb
|
184
|
+
- features/step_definitions/datepicker_steps.rb
|
177
185
|
- features/step_definitions/menu_steps.rb
|
178
186
|
- features/step_definitions/progress_bar_steps.rb
|
179
187
|
- features/step_definitions/slider_steps.rb
|
@@ -183,6 +191,7 @@ test_files:
|
|
183
191
|
- features/support/hooks.rb
|
184
192
|
- features/support/pages/accordion_page.rb
|
185
193
|
- features/support/pages/basic_dialog_page.rb
|
194
|
+
- features/support/pages/datepicker_page.rb
|
186
195
|
- features/support/pages/menu_page.rb
|
187
196
|
- features/support/pages/progress_bar_page.rb
|
188
197
|
- features/support/pages/slider_page.rb
|