page-object 0.8.7 → 0.8.8

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dfa172a1868058c6898f6df913eabfd8bfe4ab06
4
+ data.tar.gz: 5f9ca6f196ecb011fa43529f6b0eb1a5761fc17b
5
+ SHA512:
6
+ metadata.gz: 6c001a8140a22b48148a72fe2f5e4f3b7a17d3f6f07ce812e1a31b0308cb4551cd83520658e094da7871664786f2fe303f30828e60a5a7b92daa681ac902da34
7
+ data.tar.gz: 47e1d9561c93be89b88e3c7ac54dde7354c89ddc06eaa05024bbff1c893e26c5190df49eba10ba08a457a68f4fdf582a5f1825add9b41a02c9f9e5160e129273
@@ -0,0 +1 @@
1
+ page-object
@@ -0,0 +1 @@
1
+ ruby-2.0.0-p0
@@ -1,9 +1,10 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.8.7
4
3
  - 1.9.2
5
4
  - 1.9.3
6
- - ree
5
+ - 2.0.0
6
+ - jruby-19mode
7
+
7
8
  before_script:
8
9
  - "export DISPLAY=:99.0"
9
10
  - "sh -e /etc/init.d/xvfb start"
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ === Version 0.8.8 / 2013-4-5
2
+ * Enhancements
3
+ * Added callback to widget classes to allow them to define their own accessors
4
+ * Added more support for using css when locating elements using Watir-webdriver (Neal Lindsay)
5
+
1
6
  === Version 0.8.7 / 2013-3-31
2
7
  * Enhancements
3
8
  * Added ability to find elements using any valid attribute
@@ -19,14 +19,6 @@ Feature: Area
19
19
  | name |
20
20
  | xpath |
21
21
  | index |
22
-
23
- @selenium_only
24
- Scenario Outline: Locating areas on the page
25
- When I search for the area by "<search_by>"
26
- Then I should be able to click the area
27
-
28
- Scenarios:
29
- | search_by |
30
22
  | css |
31
23
 
32
24
  Scenario: Getting the coordinates for the area
@@ -19,14 +19,6 @@ Feature: Support for the audio element
19
19
  | name |
20
20
  | xpath |
21
21
  | index |
22
-
23
- @selenium_only
24
- Scenario Outline: Locating an audio element on the page
25
- When I search for the audio element by "<search_by>"
26
- Then I should know it is visible
27
-
28
- Scenarios:
29
- | search_by |
30
22
  | css |
31
23
 
32
24
  Scenario Outline: Locating audios using multiple parameters
@@ -19,14 +19,6 @@ Feature: Support for the canvas element
19
19
  | name |
20
20
  | xpath |
21
21
  | index |
22
-
23
- @selenium_only
24
- Scenario Outline: Locating a canvas on the page
25
- When I search for the canvas by "<search_by>"
26
- Then I should know it is visible
27
-
28
- Examples:
29
- | search_by |
30
22
  | css |
31
23
 
32
24
  Scenario: Determining the width and height of the canvas
@@ -28,14 +28,6 @@ Feature: Div
28
28
  | name |
29
29
  | text |
30
30
  | title |
31
-
32
- @selenium_only
33
- Scenario Outline: Locating divs on the page
34
- When I search for the div by "<search_by>"
35
- Then the text should be "page-object rocks!"
36
-
37
- Scenarios:
38
- | search_by |
39
31
  | css |
40
32
 
41
33
  Scenario Outline: Locating divs using multiple parameters
@@ -1,3 +1,4 @@
1
+ @focus
1
2
  Feature: Gxt Table Extension
2
3
  As a Quality Engineer working on a Gxt or Gwt project
3
4
  In order to easily create test widgets to interact with application widgets
@@ -21,4 +22,4 @@ Feature: Gxt Table Extension
21
22
 
22
23
  Scenario: Confirm a correct row count from a GxtTable
23
24
  When I retrieve a GxtTable widget
24
- And the GxtTable should have "13" rows
25
+ Then the GxtTable should have "13" rows
@@ -28,14 +28,6 @@ Feature: Headings
28
28
  | name |
29
29
  | xpath |
30
30
  | index |
31
-
32
- @selenium_only
33
- Scenario Outline: Locating h1s on the Page
34
- When I search for the heading1 by "<search_by>"
35
- Then I should see "h1's are cool"
36
-
37
- Scenarios:
38
- | search_by |
39
31
  | css |
40
32
 
41
33
  Scenario Outline: Locating h2s on the Page
@@ -49,14 +41,6 @@ Feature: Headings
49
41
  | name |
50
42
  | xpath |
51
43
  | index |
52
-
53
- @selenium_only
54
- Scenario Outline: Locating h2s on the Page
55
- When I search for the heading2 by "<search_by>"
56
- Then I should see "h2's are cool"
57
-
58
- Scenarios:
59
- | search_by |
60
44
  | css |
61
45
 
62
46
  Scenario Outline: Locating h3s on the Page
@@ -70,14 +54,6 @@ Feature: Headings
70
54
  | name |
71
55
  | xpath |
72
56
  | index |
73
-
74
- @selenium_only
75
- Scenario Outline: Locating h3s on the Page
76
- When I search for the heading3 by "<search_by>"
77
- Then I should see "h3's are cool"
78
-
79
- Scenarios:
80
- | search_by |
81
57
  | css |
82
58
 
83
59
  Scenario Outline: Locating h4s on the Page
@@ -91,14 +67,6 @@ Feature: Headings
91
67
  | name |
92
68
  | xpath |
93
69
  | index |
94
-
95
- @selenium_only
96
- Scenario Outline: Locating h4s on the Page
97
- When I search for the heading4 by "<search_by>"
98
- Then I should see "h4's are cool"
99
-
100
- Scenarios:
101
- | search_by |
102
70
  | css |
103
71
 
104
72
  Scenario Outline: Locating h5s on the Page
@@ -112,14 +80,6 @@ Feature: Headings
112
80
  | name |
113
81
  | xpath |
114
82
  | index |
115
-
116
- @selenium_only
117
- Scenario Outline: Locating h5s on the Page
118
- When I search for the heading5 by "<search_by>"
119
- Then I should see "h5's are cool"
120
-
121
- Scenarios:
122
- | search_by |
123
83
  | css |
124
84
 
125
85
  Scenario Outline: Locating h6s on the Page
@@ -133,13 +93,5 @@ Feature: Headings
133
93
  | name |
134
94
  | xpath |
135
95
  | index |
136
-
137
- @selenium_only
138
- Scenario Outline: Locating h6s on the Page
139
- When I search for the heading6 by "<search_by>"
140
- Then I should see "h6's are cool"
141
-
142
- Scenarios:
143
- | search_by |
144
96
  | css |
145
97
 
@@ -28,14 +28,6 @@ Feature: Handling labels with page object
28
28
  | index |
29
29
  | name |
30
30
  | text |
31
-
32
- @selenium_only
33
- Scenario Outline: Locating labels on the page
34
- When I search for the label by "<search_by>"
35
- Then the text should be "page-object is the best!"
36
-
37
- Scenarios:
38
- | search_by |
39
31
  | css |
40
32
 
41
33
  Scenario Outline: Locating labels using multiple parameters
@@ -27,15 +27,6 @@ Feature: Links
27
27
  | css |
28
28
  | title |
29
29
 
30
- @selenium_only
31
- Scenario Outline: Locating links on the Page
32
- When I search for the link by "<search_by>"
33
- Then I should be able to select the link
34
-
35
- Scenarios:
36
- | search_by |
37
- | css |
38
-
39
30
  Scenario: Support for multiple parameters
40
31
  When I select a link labeled "Hello" and index "0"
41
32
  Then the page should contain the text "Success"
@@ -19,14 +19,6 @@ Feature: List item
19
19
  | index |
20
20
  | name |
21
21
  | text |
22
-
23
- @selenium_only
24
- Scenario Outline: Locating list items on the page
25
- When I search for the list item by "<search_by>"
26
- Then the text should be "Item One"
27
-
28
- Scenarios:
29
- | search_by |
30
22
  | css |
31
23
 
32
24
  Scenario Outline: Locating list items using multiple parameters
@@ -18,14 +18,6 @@ Feature: Paragraph
18
18
  | xpath |
19
19
  | index |
20
20
  | name |
21
-
22
- @selenium_only
23
- Scenario Outline: Locating paragraphs on the page
24
- When I search for the paragraph by "<search_by>"
25
- Then the text should be "Static Elements Page"
26
-
27
- Scenarios:
28
- | search_by |
29
21
  | css |
30
22
 
31
23
  Scenario Outline: Locating paragraphs using multiple parameters
@@ -20,14 +20,6 @@ Feature: Span
20
20
  | name |
21
21
  | text |
22
22
  | title |
23
-
24
- @selenium_only
25
- Scenario Outline: Locating spans on the page
26
- When I search for the span by "<search_by>"
27
- Then the text should be "My alert"
28
-
29
- Scenarios:
30
- | search_by |
31
23
  | css |
32
24
 
33
25
  Scenario Outline: Locating span using multiple parameters
@@ -1,19 +1,35 @@
1
1
  Given /^I am on the Gxt Examples page$/ do
2
- @page = GxtSamplePageObject.new(@browser)
3
- @page.navigate_to "http://gxtexamplegallery.appspot.com/"
2
+ visit GxtSamplePageObject
4
3
  end
5
4
 
6
5
  When /^I have the Basic Grid opened$/ do
7
- @page.basic_grid_element.click
6
+ on(GxtSamplePageObject).basic_grid_element.click
8
7
  end
9
8
 
10
9
  When /^I have defined a GxtTable class extending Table$/ do
11
10
  class GxtTable < PageObject::Elements::Table
12
11
 
13
- protected
14
- def child_xpath
15
- ".//descendant::tr"
12
+ def self.accessor_methods(accessor, name)
13
+ accessor.send :define_method, "#{name}_rows" do
14
+ self.send("#{name}_element").rows
15
+ end
16
16
  end
17
+
18
+ protected
19
+ def child_xpath
20
+ ".//descendant::tr"
21
+ end
22
+ end
23
+ end
24
+
25
+ When /^I define a page-object using that widget$/ do
26
+ class GxtSamplePageObject
27
+ include PageObject
28
+
29
+ page_url "http://gxtexamplegallery.appspot.com/"
30
+
31
+ div(:basic_grid, :class => "label_basic_grid")
32
+ gxt_table(:gxt_table, :class => "x-grid3")
17
33
  end
18
34
  end
19
35
 
@@ -22,19 +38,11 @@ When /^I have registered the GxtTable with PageObject$/ do
22
38
  end
23
39
 
24
40
  When /^I retrieve a GxtTable widget$/ do
25
- @element = @page.gxt_table_element
41
+ @element = on(GxtSamplePageObject).gxt_table_element
26
42
  end
27
43
 
28
44
 
29
45
  When /^the GxtTable should have "(\d+)" rows$/ do |rows|
30
- @element.rows.should == rows.to_i
46
+ on(GxtSamplePageObject).gxt_table_rows.should == rows.to_i
31
47
  end
32
48
 
33
- When /^I define a page-object using that widget$/ do
34
- class GxtSamplePageObject
35
- include PageObject
36
-
37
- div(:basic_grid, :class => "label_basic_grid")
38
- gxt_table(:gxt_table, :class => "x-grid3")
39
- end
40
- end
@@ -5,3 +5,4 @@ require 'watir-webdriver'
5
5
  require 'selenium-webdriver'
6
6
  require 'page-object'
7
7
 
8
+ World(PageObject::PageFactory)
@@ -19,14 +19,6 @@ Feature: Table Cell
19
19
  | xpath |
20
20
  | name |
21
21
  | text |
22
-
23
- @selenium_only
24
- Scenario Outline: Locating table cells on the Page
25
- When I search for the table cell by "<search_by>"
26
- Then the cell data should be 'Data4'
27
-
28
- Scenarios:
29
- | search_by |
30
22
  | css |
31
23
 
32
24
  @watir_only
@@ -19,14 +19,6 @@ Feature: Support for video element
19
19
  | name |
20
20
  | xpath |
21
21
  | index |
22
-
23
- @selenium_only
24
- Scenario Outline: Locating a video element on the page
25
- When I search for the video element by "<search_by>"
26
- Then I should know it is visible
27
-
28
- Scenarios:
29
- | search_by |
30
22
  | css |
31
23
 
32
24
  Scenario Outline: Locating videos using multiple parameters
@@ -413,7 +413,7 @@ module PageObject
413
413
  # @param [Hash] identifier how we find a div. You can use a multiple paramaters
414
414
  # by combining of any of the following except xpath. The valid keys are:
415
415
  # * :class => Watir and Selenium
416
- # * :css => Selenium only
416
+ # * :css => Watir and Selenium
417
417
  # * :id => Watir and Selenium
418
418
  # * :index => Watir and Selenium
419
419
  # * :name => Watir and Selenium
@@ -442,7 +442,7 @@ module PageObject
442
442
  # @param [Hash] identifier how we find a span. You can use a multiple paramaters
443
443
  # by combining of any of the following except xpath. The valid keys are:
444
444
  # * :class => Watir and Selenium
445
- # * :css => Selenium only
445
+ # * :css => Watir and Selenium
446
446
  # * :id => Watir and Selenium
447
447
  # * :index => Watir and Selenium
448
448
  # * :name => Watir and Selenium
@@ -501,7 +501,7 @@ module PageObject
501
501
  # @param [Hash] identifier how we find a cell. You can use a multiple paramaters
502
502
  # by combining of any of the following except xpath. The valid keys are:
503
503
  # * :class => Watir and Selenium
504
- # * :css => Selenium only
504
+ # * :css => Watir and Selenium
505
505
  # * :id => Watir and Selenium
506
506
  # * :index => Watir and Selenium
507
507
  # * :name => Watir and Selenium
@@ -580,7 +580,7 @@ module PageObject
580
580
  # @param [Hash] identifier how we find a list item. You can use a multiple paramaters
581
581
  # by combining of any of the following except xpath. The valid keys are:
582
582
  # * :class => Watir and Selenium
583
- # * :css => Selenium only
583
+ # * :css => Watir and Selenium
584
584
  # * :id => Watir and Selenium
585
585
  # * :index => Watir and Selenium
586
586
  # * :name => Watir and Selenium
@@ -667,7 +667,7 @@ module PageObject
667
667
  # @param [Hash] identifier how we find a H1. You can use a multiple paramaters
668
668
  # by combining of any of the following except xpath. The valid keys are:
669
669
  # * :class => Watir and Selenium
670
- # * :css => Selenium only
670
+ # * :css => Watir and Selenium
671
671
  # * :id => Watir and Selenium
672
672
  # * :index => Watir and Selenium
673
673
  # * :name => Watir and Selenium
@@ -694,7 +694,7 @@ module PageObject
694
694
  # @param [Hash] identifier how we find a H2. You can use a multiple paramaters
695
695
  # by combining of any of the following except xpath. The valid keys are:
696
696
  # * :class => Watir and Selenium
697
- # * :css => Selenium only
697
+ # * :css => Watir and Selenium
698
698
  # * :id => Watir and Selenium
699
699
  # * :index => Watir and Selenium
700
700
  # * :name => Watir and Selenium
@@ -721,7 +721,7 @@ module PageObject
721
721
  # @param [Hash] identifier how we find a H3. You can use a multiple paramaters
722
722
  # by combining of any of the following except xpath. The valid keys are:
723
723
  # * :class => Watir and Selenium
724
- # * :css => Selenium only
724
+ # * :css => Watir and Selenium
725
725
  # * :id => Watir and Selenium
726
726
  # * :index => Watir and Selenium
727
727
  # * :name => Watir and Selenium
@@ -748,7 +748,7 @@ module PageObject
748
748
  # @param [Hash] identifier how we find a H4. You can use a multiple paramaters
749
749
  # by combining of any of the following except xpath. The valid keys are:
750
750
  # * :class => Watir and Selenium
751
- # * :css => Selenium only
751
+ # * :css => Watir and Selenium
752
752
  # * :id => Watir and Selenium
753
753
  # * :index => Watir and Selenium
754
754
  # * :name => Watir and Selenium
@@ -775,7 +775,7 @@ module PageObject
775
775
  # @param [Hash] identifier how we find a H5. You can use a multiple paramaters
776
776
  # by combining of any of the following except xpath. The valid keys are:
777
777
  # * :class => Watir and Selenium
778
- # * :css => Selenium only
778
+ # * :css => Watir and Selenium
779
779
  # * :id => Watir and Selenium
780
780
  # * :index => Watir and Selenium
781
781
  # * :name => Watir and Selenium
@@ -802,7 +802,7 @@ module PageObject
802
802
  # @param [Hash] identifier how we find a H6. You can use a multiple paramaters
803
803
  # by combining of any of the following except xpath. The valid keys are:
804
804
  # * :class => Watir and Selenium
805
- # * :css => Selenium only
805
+ # * :css => Watir and Selenium
806
806
  # * :id => Watir and Selenium
807
807
  # * :index => Watir and Selenium
808
808
  # * :name => Watir and Selenium
@@ -829,7 +829,7 @@ module PageObject
829
829
  # @param [Hash] identifier how we find a paragraph. You can use a multiple paramaters
830
830
  # by combining of any of the following except xpath. The valid keys are:
831
831
  # * :class => Watir and Selenium
832
- # * :css => Selenium only
832
+ # * :css => Watir and Selenium
833
833
  # * :id => Watir and Selenium
834
834
  # * :index => Watir and Selenium
835
835
  # * :name => Watir and Selenium
@@ -886,7 +886,7 @@ module PageObject
886
886
  # @param [Hash] identifier how we find a label. You can use a multiple paramaters
887
887
  # by combining of any of the following except xpath. The valid keys are:
888
888
  # * :class => Watir and Selenium
889
- # * :css => Selenium only
889
+ # * :css => Watir and Selenium
890
890
  # * :id => Watir and Selenium
891
891
  # * :index => Watir and Selenium
892
892
  # * :name => Watir and Selenium
@@ -914,7 +914,7 @@ module PageObject
914
914
  # @param [Hash] identifier how we find an area. You can use a multiple paramaters
915
915
  # by combining of any of the following except xpath. The valid keys are:
916
916
  # * :class => Watir and Selenium
917
- # * :css => Selenium only
917
+ # * :css => Watir and Selenium
918
918
  # * :id => Watir and Selenium
919
919
  # * :index => Watir and Selenium
920
920
  # * :name => Watir and Selenium
@@ -942,7 +942,7 @@ module PageObject
942
942
  # @param [Hash] identifier how we find a canvas. You can use a multiple paramaters
943
943
  # by combining of any of the following except xpath. The valid keys are:
944
944
  # * :class => Watir and Selenium
945
- # * :css => Selenium only
945
+ # * :css => Watir and Selenium
946
946
  # * :id => Watir and Selenium
947
947
  # * :index => Watir and Selenium
948
948
  # * :name => Watir and Selenium
@@ -965,7 +965,7 @@ module PageObject
965
965
  # @param [Hash] identifier how we find an audio element. You can use a multiple paramaters
966
966
  # by combining of any of the following except xpath. The valid keys are:
967
967
  # * :class => Watir and Selenium
968
- # * :css => Selenium only
968
+ # * :css => Watir and Selenium
969
969
  # * :id => Watir and Selenium
970
970
  # * :index => Watir and Selenium
971
971
  # * :name => Watir and Selenium
@@ -988,7 +988,7 @@ module PageObject
988
988
  # @param [Hash] identifier how we find a video element. You can use a multiple paramaters
989
989
  # by combining of any of the following except xpath. The valid keys are:
990
990
  # * :class => Watir and Selenium
991
- # * :css => Selenium only
991
+ # * :css => Watir and Selenium
992
992
  # * :id => Watir and Selenium
993
993
  # * :index => Watir and Selenium
994
994
  # * :name => Watir and Selenium
@@ -930,9 +930,33 @@ module PageObject
930
930
  end
931
931
 
932
932
  private
933
+
934
+ def move_element_to_css_selector(the_call, identifier)
935
+ valid_elements = %w(
936
+ area audio canvas div
937
+ h1 h2 h3 h4 h5 h6
938
+ label li p span td video
939
+ )
940
+ element = the_call.split('(').first
941
+ if identifier.keys.include?(:css) and valid_elements.include? element
942
+ the_call[element] = 'element'
943
+ selectors = identifier[:css].split(/,\s*/).map { |selector|
944
+ modified_selector = selector.split /\s+/
945
+ last = modified_selector.pop
946
+ if last.index(element) == 0
947
+ selector
948
+ else
949
+ modified_selector.push(element + last)
950
+ end
951
+ }
952
+ identifier[:css] = selectors.join(', ')
953
+ end
954
+ [the_call, identifier]
955
+ end
933
956
 
934
957
  def find_watir_elements(the_call, type, identifier, tag_name=nil)
935
958
  identifier, frame_identifiers = parse_identifiers(identifier, type, tag_name)
959
+ the_call, identifier = move_element_to_css_selector(the_call, identifier)
936
960
  elements = @browser.instance_eval "#{nested_frames(frame_identifiers)}#{the_call}"
937
961
  switch_to_default_content(frame_identifiers)
938
962
  elements.map { |element| type.new(element, :platform => :watir_webdriver) }
@@ -940,6 +964,7 @@ module PageObject
940
964
 
941
965
  def find_watir_element(the_call, type, identifier, tag_name=nil)
942
966
  identifier, frame_identifiers = parse_identifiers(identifier, type, tag_name)
967
+ the_call, identifier = move_element_to_css_selector(the_call, identifier)
943
968
  element = @browser.instance_eval "#{nested_frames(frame_identifiers)}#{the_call}"
944
969
  switch_to_default_content(frame_identifiers)
945
970
  type.new(element, :platform => :watir_webdriver)
@@ -947,6 +972,7 @@ module PageObject
947
972
 
948
973
  def process_watir_call(the_call, type, identifier, value=nil, tag_name=nil)
949
974
  identifier, frame_identifiers = parse_identifiers(identifier, type, tag_name)
975
+ the_call, identifier = move_element_to_css_selector(the_call, identifier)
950
976
  value = @browser.instance_eval "#{nested_frames(frame_identifiers)}#{the_call}"
951
977
  switch_to_default_content(frame_identifiers)
952
978
  value
@@ -1,4 +1,4 @@
1
1
  module PageObject
2
2
  # @private
3
- VERSION = "0.8.7"
3
+ VERSION = "0.8.8"
4
4
  end
@@ -17,7 +17,7 @@ module PageObject
17
17
  #
18
18
  def self.register_widget(widget_tag, widget_class, base_element_tag)
19
19
  if widget_class.ancestors.include? Elements::Element
20
- define_accessors(Accessors, widget_tag)
20
+ define_accessors(Accessors, widget_tag, widget_class)
21
21
  define_nested_elements(Elements::Element, widget_tag)
22
22
  define_locators(PageObject, widget_tag)
23
23
  define_selenium_accessors(Platforms::SeleniumWebDriver::PageObject, widget_tag, widget_class, base_element_tag)
@@ -25,21 +25,23 @@ module PageObject
25
25
  end
26
26
  end
27
27
 
28
- @private
28
+ private
29
29
 
30
- def self.define_accessors(base, widget_tag)
30
+ def self.define_accessors(base, widget_tag, widget_class)
31
31
  accessors_module = Module.new do
32
- class_eval "def #{widget_tag}(name, identifier={}, &block)
33
- identifier={:index=>0} if identifier.empty?
34
- define_method(\"\#{name}_element\") do
35
- return call_block(&block) if block_given?
36
- platform.#{widget_tag}_for(identifier.clone)
32
+ define_method widget_tag do |name, identifier={:index => 0}, &block|
33
+ define_method("#{name}_element") do
34
+ return call_block(&block) if block
35
+ platform.send("#{widget_tag}_for", identifier.clone)
37
36
  end
38
- define_method(\"\#{name}?\") do
39
- return call_block(&block).exists? if block_given?
40
- platform.#{widget_tag}_for(identifier.clone).exists?
37
+ define_method("#{name}?") do
38
+ return call_block(&block).exists? if block
39
+ platform.send("#{widget_tag}_for", identifier.clone).exists?
41
40
  end
42
- end"
41
+ if widget_class.respond_to? :accessor_methods
42
+ widget_class.accessor_methods(self, name)
43
+ end
44
+ end
43
45
  end
44
46
 
45
47
  base.send(:include, accessors_module)
@@ -6,14 +6,14 @@ describe PageObject::Elements::Div do
6
6
 
7
7
  describe "when mapping how to find an element" do
8
8
  it "should map watir types to same" do
9
- [:class, :id, :text, :index, :xpath, :name, :title].each do |t|
9
+ [:class, :id, :text, :index, :xpath, :name, :title, :css].each do |t|
10
10
  identifier = div.watir_identifier_for t => 'value'
11
11
  identifier.keys.first.should == t
12
12
  end
13
13
  end
14
14
 
15
15
  it "should map selenium types to same" do
16
- [:class, :id, :text, :index, :name, :xpath, :title].each do |t|
16
+ [:class, :id, :text, :index, :name, :xpath, :title, :css].each do |t|
17
17
  key, value = div.selenium_identifier_for t => 'value'
18
18
  key.should == t
19
19
  end
@@ -155,7 +155,7 @@ describe PageObject do
155
155
  end
156
156
 
157
157
  @page = CallbackPage.new(watir_browser)
158
- @page.initialize_accessors.usec.should be < @page.initialize_page.usec
158
+ @page.initialize_accessors.usec.should be <= @page.initialize_page.usec
159
159
  end
160
160
 
161
161
  it "should know which element has focus" do
metadata CHANGED
@@ -1,126 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: page-object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.7
5
- prerelease:
4
+ version: 0.8.8
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jeff Morgan
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-31 00:00:00.000000000 Z
11
+ date: 2013-04-05 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: watir-webdriver
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.6.2
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.6.2
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: selenium-webdriver
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: 2.31.0
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: 2.31.0
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: page_navigation
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0.7'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0.7'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: 2.12.0
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: 2.12.0
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: cucumber
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: 1.2.0
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: 1.2.0
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: yard
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: 0.7.2
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: 0.7.2
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rack
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '1.0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '1.0'
126
111
  description: Page Object DSL that works with both Watir and Selenium
@@ -132,7 +117,8 @@ extra_rdoc_files: []
132
117
  files:
133
118
  - .gitignore
134
119
  - .rspec
135
- - .rvmrc
120
+ - .ruby-gemset
121
+ - .ruby-version
136
122
  - .travis.yml
137
123
  - ChangeLog
138
124
  - Gemfile
@@ -385,33 +371,26 @@ files:
385
371
  - spec/spec_helper.rb
386
372
  homepage: http://github.com/cheezy/page-object
387
373
  licenses: []
374
+ metadata: {}
388
375
  post_install_message:
389
376
  rdoc_options: []
390
377
  require_paths:
391
378
  - lib
392
379
  required_ruby_version: !ruby/object:Gem::Requirement
393
- none: false
394
380
  requirements:
395
- - - ! '>='
381
+ - - '>='
396
382
  - !ruby/object:Gem::Version
397
383
  version: '0'
398
- segments:
399
- - 0
400
- hash: 1736610363844410914
401
384
  required_rubygems_version: !ruby/object:Gem::Requirement
402
- none: false
403
385
  requirements:
404
- - - ! '>='
386
+ - - '>='
405
387
  - !ruby/object:Gem::Version
406
388
  version: '0'
407
- segments:
408
- - 0
409
- hash: 1736610363844410914
410
389
  requirements: []
411
390
  rubyforge_project: page-object
412
- rubygems_version: 1.8.25
391
+ rubygems_version: 2.0.0
413
392
  signing_key:
414
- specification_version: 3
393
+ specification_version: 4
415
394
  summary: Page Object DSL for browser testing
416
395
  test_files:
417
396
  - features/area.feature
data/.rvmrc DELETED
@@ -1,2 +0,0 @@
1
- rvm --create use 1.9.3-p392@page-object
2
-