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.
- data/ChangeLog +8 -0
 - data/features/area.feature +9 -0
 - data/features/audio.feature +9 -0
 - data/features/canvas.feature +9 -0
 - data/features/check_box.feature +9 -0
 - data/features/element.feature +5 -0
 - data/features/file_field.feature +9 -0
 - data/features/form.feature +9 -0
 - data/features/headings.feature +55 -0
 - data/features/hidden_field.feature +9 -0
 - data/features/html/double_click.html +13 -0
 - data/features/html/failure.html +8 -0
 - data/features/html/static_elements.html +1 -0
 - data/features/image.feature +10 -0
 - data/features/label.feature +9 -0
 - data/features/link.feature +9 -0
 - data/features/list_item.feature +9 -0
 - data/features/ordered_list.feature +12 -0
 - data/features/page_level_actions.feature +10 -0
 - data/features/paragraph.feature +9 -0
 - data/features/radio_button.feature +10 -0
 - data/features/span.feature +9 -0
 - data/features/step_definitions/element_steps.rb +19 -0
 - data/features/step_definitions/page_level_actions_steps.rb +6 -0
 - data/features/step_definitions/span_steps.rb +1 -1
 - data/features/support/page.rb +30 -0
 - data/features/support/url_helper.rb +4 -1
 - data/features/table.feature +9 -0
 - data/features/table_cell.feature +9 -0
 - data/features/text_area.feature +8 -0
 - data/features/unordered_list.feature +12 -0
 - data/features/video.feature +9 -0
 - data/lib/page-object.rb +4 -2
 - data/lib/page-object/accessors.rb +57 -0
 - data/lib/page-object/elements/button.rb +1 -1
 - data/lib/page-object/elements/div.rb +1 -1
 - data/lib/page-object/elements/element.rb +2 -7
 - data/lib/page-object/elements/link.rb +1 -1
 - data/lib/page-object/elements/select_list.rb +0 -4
 - data/lib/page-object/elements/span.rb +1 -1
 - data/lib/page-object/elements/text_field.rb +1 -1
 - data/lib/page-object/platforms/selenium_webdriver/element.rb +8 -0
 - data/lib/page-object/platforms/selenium_webdriver/page_object.rb +1 -1
 - data/lib/page-object/platforms/watir_webdriver/element.rb +7 -0
 - data/lib/page-object/version.rb +1 -1
 - data/page-object.gemspec +1 -1
 - data/spec/page-object/elements/selenium_element_spec.rb +1 -0
 - data/spec/page-object/elements/watir_element_spec.rb +5 -0
 - data/spec/page-object/page-object_spec.rb +35 -3
 - metadata +10 -6
 
| 
         @@ -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
         
     | 
| 
         @@ -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  
     | 
| 
      
 129 
     | 
    
         
            +
                          (key == :url and @browser.current_url.include?(value))
         
     | 
| 
       130 
130 
     | 
    
         
             
                          return @browser.switch_to.window handle, &block
         
     | 
| 
       131 
131 
     | 
    
         
             
                        end
         
     | 
| 
       132 
132 
     | 
    
         
             
                      end
         
     | 
    
        data/lib/page-object/version.rb
    CHANGED
    
    
    
        data/page-object.gemspec
    CHANGED
    
    | 
         @@ -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. 
     | 
| 
      
 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'
         
     | 
| 
         @@ -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 : 
     | 
| 
      
 118 
     | 
    
         
            +
                      attr_reader :initialize_page_called
         
     | 
| 
       119 
119 
     | 
    
         | 
| 
       120 
120 
     | 
    
         
             
                      def initialize_page
         
     | 
| 
       121 
     | 
    
         
            -
                        @ 
     | 
| 
      
 121 
     | 
    
         
            +
                        @initialize_page_called = true
         
     | 
| 
       122 
122 
     | 
    
         
             
                      end
         
     | 
| 
       123 
123 
     | 
    
         
             
                    end
         
     | 
| 
       124 
124 
     | 
    
         | 
| 
       125 
125 
     | 
    
         
             
                    @page = CallbackPage.new(watir_browser)
         
     | 
| 
       126 
     | 
    
         
            -
                    @page. 
     | 
| 
      
 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. 
     | 
| 
      
 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- 
     | 
| 
      
 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. 
     | 
| 
      
 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. 
     | 
| 
      
 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:  
     | 
| 
      
 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:  
     | 
| 
      
 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
         
     |