page-object 0.7.5.1 → 0.7.6

Sign up to get free protection for your applications and to get access to all the features.
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