page-object 0.7.5.1 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. data/ChangeLog +8 -0
  2. data/features/area.feature +9 -0
  3. data/features/audio.feature +9 -0
  4. data/features/canvas.feature +9 -0
  5. data/features/check_box.feature +9 -0
  6. data/features/element.feature +5 -0
  7. data/features/file_field.feature +9 -0
  8. data/features/form.feature +9 -0
  9. data/features/headings.feature +55 -0
  10. data/features/hidden_field.feature +9 -0
  11. data/features/html/double_click.html +13 -0
  12. data/features/html/failure.html +8 -0
  13. data/features/html/static_elements.html +1 -0
  14. data/features/image.feature +10 -0
  15. data/features/label.feature +9 -0
  16. data/features/link.feature +9 -0
  17. data/features/list_item.feature +9 -0
  18. data/features/ordered_list.feature +12 -0
  19. data/features/page_level_actions.feature +10 -0
  20. data/features/paragraph.feature +9 -0
  21. data/features/radio_button.feature +10 -0
  22. data/features/span.feature +9 -0
  23. data/features/step_definitions/element_steps.rb +19 -0
  24. data/features/step_definitions/page_level_actions_steps.rb +6 -0
  25. data/features/step_definitions/span_steps.rb +1 -1
  26. data/features/support/page.rb +30 -0
  27. data/features/support/url_helper.rb +4 -1
  28. data/features/table.feature +9 -0
  29. data/features/table_cell.feature +9 -0
  30. data/features/text_area.feature +8 -0
  31. data/features/unordered_list.feature +12 -0
  32. data/features/video.feature +9 -0
  33. data/lib/page-object.rb +4 -2
  34. data/lib/page-object/accessors.rb +57 -0
  35. data/lib/page-object/elements/button.rb +1 -1
  36. data/lib/page-object/elements/div.rb +1 -1
  37. data/lib/page-object/elements/element.rb +2 -7
  38. data/lib/page-object/elements/link.rb +1 -1
  39. data/lib/page-object/elements/select_list.rb +0 -4
  40. data/lib/page-object/elements/span.rb +1 -1
  41. data/lib/page-object/elements/text_field.rb +1 -1
  42. data/lib/page-object/platforms/selenium_webdriver/element.rb +8 -0
  43. data/lib/page-object/platforms/selenium_webdriver/page_object.rb +1 -1
  44. data/lib/page-object/platforms/watir_webdriver/element.rb +7 -0
  45. data/lib/page-object/version.rb +1 -1
  46. data/page-object.gemspec +1 -1
  47. data/spec/page-object/elements/selenium_element_spec.rb +1 -0
  48. data/spec/page-object/elements/watir_element_spec.rb +5 -0
  49. data/spec/page-object/page-object_spec.rb +35 -3
  50. metadata +10 -6
@@ -15,7 +15,7 @@ module PageObject
15
15
  end
16
16
 
17
17
  def self.selenium_finders
18
- super + [:value, :src, :alt, :css]
18
+ super + [:value, :src, :alt]
19
19
  end
20
20
 
21
21
  def include_platform_for platform
@@ -9,7 +9,7 @@ module PageObject
9
9
  end
10
10
 
11
11
  def self.selenium_finders
12
- super + [:text, :title, :css]
12
+ super + [:text, :title]
13
13
  end
14
14
 
15
15
  end
@@ -25,12 +25,7 @@ module PageObject
25
25
  element.click
26
26
  end
27
27
 
28
- #
29
- # double click the element
30
- #
31
- def double_click
32
- element.double_click
33
- end
28
+
34
29
 
35
30
  #
36
31
  # return true if the element is enabled
@@ -186,7 +181,7 @@ module PageObject
186
181
  end
187
182
 
188
183
  def self.selenium_finders
189
- [:class, :id, :index, :name, :xpath]
184
+ [:class, :css, :id, :index, :name, :xpath]
190
185
  end
191
186
 
192
187
  def self.selenium_mapping
@@ -19,7 +19,7 @@ module PageObject
19
19
  end
20
20
 
21
21
  def self.selenium_finders
22
- super + [:link, :link_text, :css, :title]
22
+ super + [:link, :link_text, :title]
23
23
  end
24
24
 
25
25
  def self.selenium_mapping
@@ -18,10 +18,6 @@ module PageObject
18
18
  super + [:text, :value]
19
19
  end
20
20
 
21
- def self.selenium_finders
22
- super + [:css]
23
- end
24
-
25
21
  def include_platform_for platform
26
22
  super
27
23
  if platform[:platform] == :watir_webdriver
@@ -9,7 +9,7 @@ module PageObject
9
9
  end
10
10
 
11
11
  def self.selenium_finders
12
- [:class, :id, :name, :text, :title, :xpath, :index]
12
+ [:class, :css, :id, :name, :text, :title, :xpath, :index]
13
13
  end
14
14
  end
15
15
 
@@ -19,7 +19,7 @@ module PageObject
19
19
  end
20
20
 
21
21
  def self.selenium_finders
22
- super + [:title, :value, :text, :label, :css]
22
+ super + [:title, :value, :text, :label]
23
23
  end
24
24
 
25
25
  def include_platform_for platform
@@ -120,6 +120,14 @@ module PageObject
120
120
  mouse.move_to(element)
121
121
  end
122
122
 
123
+ #
124
+ # hover over the element
125
+ #
126
+ def double_click
127
+ mouse = Selenium::WebDriver::Mouse.new(bridge)
128
+ mouse.double_click(element)
129
+ end
130
+
123
131
  #
124
132
  # find the parent element
125
133
  #
@@ -126,7 +126,7 @@ module PageObject
126
126
  handles.each do |handle|
127
127
  @browser.switch_to.window handle
128
128
  if (key == :title and value == @browser.title) or
129
- (key == :url and value == @browser.current_url)
129
+ (key == :url and @browser.current_url.include?(value))
130
130
  return @browser.switch_to.window handle, &block
131
131
  end
132
132
  end
@@ -109,6 +109,13 @@ module PageObject
109
109
  element.hover
110
110
  end
111
111
 
112
+ #
113
+ # double click the element
114
+ #
115
+ def double_click
116
+ element.double_click
117
+ end
118
+
112
119
  #
113
120
  # find the parent element
114
121
  #
@@ -1,4 +1,4 @@
1
1
  module PageObject
2
2
  # @private
3
- VERSION = "0.7.5.1"
3
+ VERSION = "0.7.6"
4
4
  end
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.require_paths = ["lib"]
21
21
 
22
22
  s.add_dependency 'watir-webdriver', '>= 0.6.1'
23
- s.add_dependency 'selenium-webdriver', '>= 2.25.0'
23
+ s.add_dependency 'selenium-webdriver', '>= 2.26.0'
24
24
 
25
25
  s.add_development_dependency 'rspec', '>= 2.6.0'
26
26
  s.add_development_dependency 'cucumber', '< 1.2.0'
@@ -67,6 +67,7 @@ describe "Element for Selenium" do
67
67
  end
68
68
 
69
69
  it "should be double clickable" do
70
+ Selenium::WebDriver::Mouse.should_receive(:new).and_return(@selenium_driver)
70
71
  @selenium_driver.should_receive(:double_click)
71
72
  @selenium_element.double_click
72
73
  end
@@ -5,6 +5,10 @@ describe "Element for Watir" do
5
5
  let(:watir_driver) { double('watir_driver') }
6
6
  let(:watir_element) { ::PageObject::Elements::Element.new(watir_driver, :platform => :watir_webdriver) }
7
7
 
8
+ before(:each) do
9
+ Selenium::WebDriver::Mouse.stub(:new).and_return(watir_driver)
10
+ end
11
+
8
12
  it "should know when it is visible" do
9
13
  watir_driver.stub(:present?).and_return(true)
10
14
  watir_driver.stub(:displayed?).and_return(true)
@@ -61,6 +65,7 @@ describe "Element for Watir" do
61
65
  end
62
66
 
63
67
  it "should be double clickable" do
68
+
64
69
  watir_driver.should_receive(:double_click)
65
70
  watir_element.double_click
66
71
  end
@@ -115,15 +115,47 @@ describe PageObject do
115
115
  it "should call initialize_page if it exists" do
116
116
  class CallbackPage
117
117
  include PageObject
118
- attr_reader :initialize_page
118
+ attr_reader :initialize_page_called
119
119
 
120
120
  def initialize_page
121
- @initialize_page = true
121
+ @initialize_page_called = true
122
122
  end
123
123
  end
124
124
 
125
125
  @page = CallbackPage.new(watir_browser)
126
- @page.initialize_page.should be_true
126
+ @page.initialize_page_called.should be_true
127
+ end
128
+
129
+ it "should call initialize_accessors if it exists" do
130
+ class CallbackPage
131
+ include PageObject
132
+ attr_reader :initialize_accessors_called
133
+
134
+ def initialize_accessors
135
+ @initialize_accessors_called = true
136
+ end
137
+ end
138
+
139
+ @page = CallbackPage.new(watir_browser)
140
+ @page.initialize_accessors_called.should be_true
141
+ end
142
+
143
+ it "should call initialize_accessors before initialize_page if both exist" do
144
+ class CallbackPage
145
+ include PageObject
146
+ attr_reader :initialize_page, :initialize_accessors
147
+
148
+ def initialize_page
149
+ @initialize_accessors = Time.now
150
+ end
151
+
152
+ def initialize_page
153
+ @initialize_accessors = Time.now
154
+ end
155
+ end
156
+
157
+ @page = CallbackPage.new(watir_browser)
158
+ @page.initialize_accessors.usec.should be < @page.initialize_page.usec
127
159
  end
128
160
 
129
161
  it "should know which element has focus" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: page-object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.5.1
4
+ version: 0.7.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-16 00:00:00.000000000 Z
12
+ date: 2012-11-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: watir-webdriver
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
- version: 2.25.0
37
+ version: 2.26.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: 2.25.0
45
+ version: 2.26.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rspec
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -140,6 +140,8 @@ files:
140
140
  - features/headings.feature
141
141
  - features/hidden_field.feature
142
142
  - features/html/async.html
143
+ - features/html/double_click.html
144
+ - features/html/failure.html
143
145
  - features/html/frame_1.html
144
146
  - features/html/frame_2.html
145
147
  - features/html/frame_3.html
@@ -371,7 +373,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
371
373
  version: '0'
372
374
  segments:
373
375
  - 0
374
- hash: -577713359376590221
376
+ hash: 2544194930156169774
375
377
  required_rubygems_version: !ruby/object:Gem::Requirement
376
378
  none: false
377
379
  requirements:
@@ -380,7 +382,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
380
382
  version: '0'
381
383
  segments:
382
384
  - 0
383
- hash: -577713359376590221
385
+ hash: 2544194930156169774
384
386
  requirements: []
385
387
  rubyforge_project: page-object
386
388
  rubygems_version: 1.8.24
@@ -403,6 +405,8 @@ test_files:
403
405
  - features/headings.feature
404
406
  - features/hidden_field.feature
405
407
  - features/html/async.html
408
+ - features/html/double_click.html
409
+ - features/html/failure.html
406
410
  - features/html/frame_1.html
407
411
  - features/html/frame_2.html
408
412
  - features/html/frame_3.html