page-object 0.5.0 → 0.5.1
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/frames.feature +20 -0
- data/features/html/frame_3.html +14 -0
- data/features/html/frames.html +5 -4
- data/features/step_definitions/frames_steps.rb +39 -4
- data/features/step_definitions/page_level_actions_steps.rb +1 -1
- data/lib/page-object.rb +30 -6
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +13 -4
- data/lib/page-object/platforms/watir_webdriver/page_object.rb +42 -6
- data/lib/page-object/version.rb +1 -1
- data/page-object.gemspec +2 -2
- data/spec/page-object/page-object_spec.rb +6 -3
- metadata +6 -4
    
        data/ChangeLog
    CHANGED
    
    | @@ -1,3 +1,11 @@ | |
| 1 | 
            +
            === Version 0.5.1 / 2011-11-16
         | 
| 2 | 
            +
            * Enhancements
         | 
| 3 | 
            +
              * Added instance level in_frame method
         | 
| 4 | 
            +
              * Support for nesting all *_element instance methods inside in_frame call
         | 
| 5 | 
            +
              * Support for nesting alerts inside an in_frame call
         | 
| 6 | 
            +
              * Support for nesting confirms inside an in_frame call
         | 
| 7 | 
            +
              * Support for nesting prompts inside an in_frame call
         | 
| 8 | 
            +
             | 
| 1 9 | 
             
            === Version 0.5 / 2011-11-06
         | 
| 2 10 | 
             
            * Enhancements
         | 
| 3 11 | 
             
              * Validated support for JRuby
         | 
    
        data/features/frames.feature
    CHANGED
    
    | @@ -35,3 +35,23 @@ Feature: Handling frames | |
| 35 35 | 
             
              Scenario: Nested frames
         | 
| 36 36 | 
             
                Given I am on the nested frame elements page
         | 
| 37 37 | 
             
                Then I should be able to click the link in the frame
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              Scenario: Identifying items in frames at runtime
         | 
| 40 | 
            +
                Given I am on the frame elements page
         | 
| 41 | 
            +
                When I type "page-object" into the text field from frame 1 identified dynamically
         | 
| 42 | 
            +
                Then I should verify "page-object" in the text field for frame 1 identified dynamically
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              Scenario: Handling alerts inside frames
         | 
| 45 | 
            +
                Given I am on the frame elements page
         | 
| 46 | 
            +
                When I trigger an alert within a frame
         | 
| 47 | 
            +
                Then I should be able to get the alert's message
         | 
| 48 | 
            +
             | 
| 49 | 
            +
              Scenario: Handling confirms inside frames
         | 
| 50 | 
            +
                Given I am on the frame elements page
         | 
| 51 | 
            +
                When I trigger a confirm within a frame
         | 
| 52 | 
            +
                Then I should be able to get the confirm message
         | 
| 53 | 
            +
             | 
| 54 | 
            +
              Scenario: Handling prompts inside frames
         | 
| 55 | 
            +
                Given I am on the frame elements page
         | 
| 56 | 
            +
                When I trigger a prompt within a frame
         | 
| 57 | 
            +
                Then I should be able to get the message and default value
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
         | 
| 2 | 
            +
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
         | 
| 3 | 
            +
              <head>
         | 
| 4 | 
            +
                <title>Frame 1</title>
         | 
| 5 | 
            +
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
         | 
| 6 | 
            +
              </head>
         | 
| 7 | 
            +
              <body>
         | 
| 8 | 
            +
                <h1>Frame 3</h1>
         | 
| 9 | 
            +
                <p>Nam accumsan. Donec nisi pede, interdum eget, ultrices ac, vulputate vitae, nunc. Nulla lorem. Duis cursus pharetra dolor. Nulla accumsan hendrerit leo. Vivamus commodo. Nullam dignissim adipiscing est. Aliquam vitae orci in risus lobortis luctus. Ut luctus fermentum ligula. Nullam ipsum. Suspendisse sit amet nisi.</p>
         | 
| 10 | 
            +
                <input id=alert_button type=button onclick="alert('I am an alert')" value=Alert>
         | 
| 11 | 
            +
                <input id=confirm_button type=button onclick="this.value = confirm('set the value')" value=Confirm>
         | 
| 12 | 
            +
                <input id=prompt_button type=button onclick='this.value = prompt("enter your name", "John Doe")' value=Prompt>
         | 
| 13 | 
            +
              </body>
         | 
| 14 | 
            +
            </html>
         | 
    
        data/features/html/frames.html
    CHANGED
    
    | @@ -4,8 +4,9 @@ | |
| 4 4 | 
             
                    <title>Frames</title>
         | 
| 5 5 | 
             
                    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
         | 
| 6 6 | 
             
                </head>
         | 
| 7 | 
            -
                <frameset cols=" | 
| 8 | 
            -
                    <frame src="frame_1.html" id="frame_1" name="frame1" | 
| 9 | 
            -
                    <frame src="frame_2.html" id="frame_2" name="frame2" | 
| 7 | 
            +
                <frameset cols="40%, 40%, 20%">
         | 
| 8 | 
            +
                    <frame src="frame_1.html" id="frame_1" name="frame1"/>
         | 
| 9 | 
            +
                    <frame src="frame_2.html" id="frame_2" name="frame2"/>
         | 
| 10 | 
            +
                    <frame src="frame_3.html" id="frame_3" name="frame3"/>
         | 
| 10 11 | 
             
                </frameset>
         | 
| 11 | 
            -
            </html>
         | 
| 12 | 
            +
            </html>
         | 
| @@ -33,20 +33,20 @@ Given /^I am on the iframe elements page$/ do | |
| 33 33 | 
             
              @page.navigate_to(UrlHelper.iframe_elements)
         | 
| 34 34 | 
             
            end
         | 
| 35 35 |  | 
| 36 | 
            -
            When /^I type "([ | 
| 36 | 
            +
            When /^I type "([^\"]*)" into the text field for frame 2 using "([^\"]*)"$/ do |text, arg_type|
         | 
| 37 37 | 
             
              @page.send "text_field_2_#{arg_type}=".to_sym, text
         | 
| 38 38 | 
             
            end
         | 
| 39 39 |  | 
| 40 | 
            -
            Then /^I should verify "([ | 
| 40 | 
            +
            Then /^I should verify "([^\"]*)" is in the text field for frame 2 using "([^\"]*)"$/ do |text, arg_type|
         | 
| 41 41 | 
             
              result = @page.send "text_field_2_#{arg_type}".to_sym
         | 
| 42 42 | 
             
              result.should == text
         | 
| 43 43 | 
             
            end
         | 
| 44 44 |  | 
| 45 | 
            -
            When /^I type "([ | 
| 45 | 
            +
            When /^I type "([^\"]*)" into the text field from frame 1 using "([^\"]*)"$/ do |text, arg_type|
         | 
| 46 46 | 
             
              @page.send "text_field_1_#{arg_type}=".to_sym, text
         | 
| 47 47 | 
             
            end
         | 
| 48 48 |  | 
| 49 | 
            -
            Then /^I should verify "([ | 
| 49 | 
            +
            Then /^I should verify "([^\"]*)" is in the text field for frame 1 using "([^\"]*)"$/ do |text, arg_type|
         | 
| 50 50 | 
             
              result = @page.send "text_field_1_#{arg_type}".to_sym
         | 
| 51 51 | 
             
              result.should == text
         | 
| 52 52 | 
             
            end
         | 
| @@ -71,3 +71,38 @@ Then /^I should be able to click the link in the frame$/ do | |
| 71 71 | 
             
              @page.text.should include "Success"
         | 
| 72 72 | 
             
            end
         | 
| 73 73 |  | 
| 74 | 
            +
            When /^I type "([^\"]*)" into the text field from frame 1 identified dynamically$/ do |value|
         | 
| 75 | 
            +
              @page.in_frame(:id => 'frame_1') do |frame|
         | 
| 76 | 
            +
                @page.text_field_element(:name => 'senderElement', :frame => frame).value = value
         | 
| 77 | 
            +
              end
         | 
| 78 | 
            +
            end
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            Then /^I should verify "([^\"]*)" in the text field for frame 1 identified dynamically$/ do |value|
         | 
| 81 | 
            +
              @page.in_frame(:id => 'frame_1') do |frame|
         | 
| 82 | 
            +
                @page.text_field_element(:name => 'senderElement', :frame => frame).value.should == value
         | 
| 83 | 
            +
              end
         | 
| 84 | 
            +
            end
         | 
| 85 | 
            +
             | 
| 86 | 
            +
            When /^I trigger an alert within a frame$/ do
         | 
| 87 | 
            +
              @page.in_frame(:id => 'frame_3') do |frame|
         | 
| 88 | 
            +
                @msg = @page.alert(frame) do
         | 
| 89 | 
            +
                  @page.button_element(:id => 'alert_button', :frame => frame).click
         | 
| 90 | 
            +
                end
         | 
| 91 | 
            +
              end
         | 
| 92 | 
            +
            end
         | 
| 93 | 
            +
             | 
| 94 | 
            +
            When /^I trigger a confirm within a frame$/ do
         | 
| 95 | 
            +
              @page.in_frame(:id => 'frame_3') do |frame|
         | 
| 96 | 
            +
                @msg = @page.confirm(true, frame) do
         | 
| 97 | 
            +
                  @page.button_element(:id => 'confirm_button', :frame => frame).click
         | 
| 98 | 
            +
                end
         | 
| 99 | 
            +
              end
         | 
| 100 | 
            +
            end
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            When /^I trigger a prompt within a frame$/ do
         | 
| 103 | 
            +
              @page.in_frame(:id => 'frame_3') do |frame|
         | 
| 104 | 
            +
                @msg = @page.prompt("Cheezy", frame) do
         | 
| 105 | 
            +
                  @page.button_element(:id => 'prompt_button', :frame => frame).click
         | 
| 106 | 
            +
                end
         | 
| 107 | 
            +
              end
         | 
| 108 | 
            +
            end
         | 
    
        data/lib/page-object.rb
    CHANGED
    
    | @@ -121,11 +121,12 @@ module PageObject | |
| 121 121 | 
             
              #     @page.button_that_causes_alert
         | 
| 122 122 | 
             
              #   end
         | 
| 123 123 | 
             
              #
         | 
| 124 | 
            +
              # @param frame optional parameter used when alert is nested within a frame
         | 
| 124 125 | 
             
              # @param block a block that has the call that will cause the alert to display
         | 
| 125 126 | 
             
              # @return [String] the message that was contained in the alert
         | 
| 126 127 | 
             
              #
         | 
| 127 | 
            -
              def alert(&block)
         | 
| 128 | 
            -
                platform.alert(&block)
         | 
| 128 | 
            +
              def alert(frame=nil, &block)
         | 
| 129 | 
            +
                platform.alert(frame, &block)
         | 
| 129 130 | 
             
              end
         | 
| 130 131 |  | 
| 131 132 | 
             
              #
         | 
| @@ -137,11 +138,12 @@ module PageObject | |
| 137 138 | 
             
              #   end
         | 
| 138 139 | 
             
              #
         | 
| 139 140 | 
             
              # @param [bool] what response you want to return back from the confirm popup
         | 
| 141 | 
            +
              # @param frame optional parameter used when the confirm is nested within a frame
         | 
| 140 142 | 
             
              # @param block a block that has the call that will cause the confirm to display
         | 
| 141 143 | 
             
              # @return [String] the message that was prompted in the confirm
         | 
| 142 144 | 
             
              #
         | 
| 143 | 
            -
              def confirm(response, &block)
         | 
| 144 | 
            -
                platform.confirm(response, &block)
         | 
| 145 | 
            +
              def confirm(response, frame=nil, &block)
         | 
| 146 | 
            +
                platform.confirm(response, frame, &block)
         | 
| 145 147 | 
             
              end
         | 
| 146 148 |  | 
| 147 149 | 
             
              #
         | 
| @@ -153,14 +155,36 @@ module PageObject | |
| 153 155 | 
             
              #   end
         | 
| 154 156 | 
             
              #
         | 
| 155 157 | 
             
              # @param [string] the value returned to the caller of the prompt
         | 
| 158 | 
            +
              # @param frame optional parameter used with the prompt is nested within a frame
         | 
| 156 159 | 
             
              # @param block a block that has the call that will cause the prompt to display
         | 
| 157 160 | 
             
              # @return [Hash] A has containing two keys - :message contains the prompt message and
         | 
| 158 161 | 
             
              # :default_value contains the default value for the prompt if provided
         | 
| 159 162 | 
             
              #
         | 
| 160 | 
            -
              def prompt(answer, &block)
         | 
| 161 | 
            -
                platform.prompt(answer, &block)
         | 
| 163 | 
            +
              def prompt(answer, frame=nil, &block)
         | 
| 164 | 
            +
                platform.prompt(answer, frame, &block)
         | 
| 162 165 | 
             
              end
         | 
| 163 166 |  | 
| 167 | 
            +
              #
         | 
| 168 | 
            +
              # Identify an element as existing within a frame or iframe.  A frame parameter
         | 
| 169 | 
            +
              # is passed to the block and must be passed to the other calls to PageObject.
         | 
| 170 | 
            +
              # You can nest calls to in_frame by passing the frame to the next level.
         | 
| 171 | 
            +
              #
         | 
| 172 | 
            +
              # @example
         | 
| 173 | 
            +
              #   in_frame(:id => 'frame_id') do |frame|
         | 
| 174 | 
            +
              #     text_field_element(:id => 'fname', :frame => frame)
         | 
| 175 | 
            +
              #   end
         | 
| 176 | 
            +
              #
         | 
| 177 | 
            +
              # @param [Hash] identifier how we find the frame.  The valid keys are:
         | 
| 178 | 
            +
              #   * :id => Watir and Selenium
         | 
| 179 | 
            +
              #   * :index => Watir and Selenium
         | 
| 180 | 
            +
              #   * :name => Watir and Selenium
         | 
| 181 | 
            +
              # @param frame passed from a previous call to in_frame.  Used to nest calls
         | 
| 182 | 
            +
              # @param block that contains the calls to elements that exist inside the frame.
         | 
| 183 | 
            +
              #
         | 
| 184 | 
            +
              def in_frame(identifier, frame=nil, &block)
         | 
| 185 | 
            +
                platform.in_frame(identifier, frame, &block)
         | 
| 186 | 
            +
              end
         | 
| 187 | 
            +
             | 
| 164 188 | 
             
              #
         | 
| 165 189 | 
             
              # Override the normal showModalDialog call is it opens a window instead
         | 
| 166 190 | 
             
              # of a dialog.  You will need to attach to the new window in order to
         | 
| @@ -68,7 +68,7 @@ module PageObject | |
| 68 68 | 
             
                    # platform method to handle an alert popup
         | 
| 69 69 | 
             
                    # See PageObject#alert
         | 
| 70 70 | 
             
                    #
         | 
| 71 | 
            -
                    def alert(&block)
         | 
| 71 | 
            +
                    def alert(frame=nil, &block)
         | 
| 72 72 | 
             
                      @browser.execute_script "window.alert = function(msg) { window.__lastWatirAlert = msg; }"
         | 
| 73 73 | 
             
                      yield
         | 
| 74 74 | 
             
                      @browser.execute_script "return window.__lastWatirAlert"
         | 
| @@ -78,7 +78,7 @@ module PageObject | |
| 78 78 | 
             
                    # platform method to handle a confirm popup
         | 
| 79 79 | 
             
                    # See PageObject#confirm
         | 
| 80 80 | 
             
                    #
         | 
| 81 | 
            -
                    def confirm(response, &block)
         | 
| 81 | 
            +
                    def confirm(response, frame=nil, &block)
         | 
| 82 82 | 
             
                      @browser.execute_script "window.confirm = function(msg) { window.__lastWatirConfirm = msg; return #{!!response} }"
         | 
| 83 83 | 
             
                      yield
         | 
| 84 84 | 
             
                      @browser.execute_script "return window.__lastWatirConfirm"
         | 
| @@ -88,11 +88,10 @@ module PageObject | |
| 88 88 | 
             
                    # platform method to handle a prompt popup
         | 
| 89 89 | 
             
                    # See PageObject#prompt
         | 
| 90 90 | 
             
                    #
         | 
| 91 | 
            -
                    def prompt(answer, &block)
         | 
| 91 | 
            +
                    def prompt(answer, frame=nil, &block)
         | 
| 92 92 | 
             
                      @browser.execute_script "window.prompt = function(text, value) { window.__lastWatirPrompt = { message: text, default_value: value }; return #{answer.to_json}; }"
         | 
| 93 93 | 
             
                      yield
         | 
| 94 94 | 
             
                      result = @browser.execute_script "return window.__lastWatirPrompt"
         | 
| 95 | 
            -
             | 
| 96 95 | 
             
                      result && result.dup.each_key { |k| result[k.to_sym] = result.delete(k) }
         | 
| 97 96 | 
             
                      result
         | 
| 98 97 | 
             
                    end
         | 
| @@ -113,6 +112,16 @@ module PageObject | |
| 113 112 | 
             
                        end
         | 
| 114 113 | 
             
                      end
         | 
| 115 114 | 
             
                    end
         | 
| 115 | 
            +
             | 
| 116 | 
            +
                    #
         | 
| 117 | 
            +
                    # platform method to switch to a frame and execute a block
         | 
| 118 | 
            +
                    # See PageObject#in_frame
         | 
| 119 | 
            +
                    #
         | 
| 120 | 
            +
                    def in_frame(identifier, frame=nil, &block)
         | 
| 121 | 
            +
                      switch_to_frame([identifier])
         | 
| 122 | 
            +
                      block.call(nil)
         | 
| 123 | 
            +
                      @browser.switch_to.default_content
         | 
| 124 | 
            +
                    end
         | 
| 116 125 |  | 
| 117 126 | 
             
                    #
         | 
| 118 127 | 
             
                    # platform method to refresh the page
         | 
| @@ -69,24 +69,40 @@ module PageObject | |
| 69 69 | 
             
                    # platform method to handle an alert popup
         | 
| 70 70 | 
             
                    # See PageObject#alert
         | 
| 71 71 | 
             
                    #
         | 
| 72 | 
            -
                    def alert(&block)
         | 
| 73 | 
            -
                       | 
| 72 | 
            +
                    def alert(frame=nil, &block)
         | 
| 73 | 
            +
                      switch_to_frame(frame)
         | 
| 74 | 
            +
                      @browser.wd.execute_script "window.alert = function(msg) { window.__lastWatirAlert = msg; }"
         | 
| 75 | 
            +
                      yield
         | 
| 76 | 
            +
                      value = @browser.wd.execute_script "return window.__lastWatirAlert"
         | 
| 77 | 
            +
                      switch_to_default_content(frame)
         | 
| 78 | 
            +
                      value
         | 
| 74 79 | 
             
                    end
         | 
| 75 80 |  | 
| 76 81 | 
             
                    #
         | 
| 77 82 | 
             
                    # platform method to handle a confirm popup
         | 
| 78 83 | 
             
                    # See PageObject#confirm
         | 
| 79 84 | 
             
                    #
         | 
| 80 | 
            -
                    def confirm(response, &block)
         | 
| 81 | 
            -
                       | 
| 85 | 
            +
                    def confirm(response, frame=nil, &block)
         | 
| 86 | 
            +
                      switch_to_frame(frame)
         | 
| 87 | 
            +
                      @browser.wd.execute_script "window.confirm = function(msg) { window.__lastWatirConfirm = msg; return #{!!response} }"
         | 
| 88 | 
            +
                      yield
         | 
| 89 | 
            +
                      value = @browser.wd.execute_script "return window.__lastWatirConfirm"
         | 
| 90 | 
            +
                      switch_to_default_content(frame)
         | 
| 91 | 
            +
                      value
         | 
| 82 92 | 
             
                    end
         | 
| 83 93 |  | 
| 84 94 | 
             
                    #
         | 
| 85 95 | 
             
                    # platform method to handle a prompt popup
         | 
| 86 96 | 
             
                    # See PageObject#prompt
         | 
| 87 97 | 
             
                    #
         | 
| 88 | 
            -
                    def prompt(answer, &block)
         | 
| 89 | 
            -
                       | 
| 98 | 
            +
                    def prompt(answer, frame=nil, &block)
         | 
| 99 | 
            +
                      switch_to_frame(frame)
         | 
| 100 | 
            +
                      @browser.wd.execute_script "window.prompt = function(text, value) { window.__lastWatirPrompt = { message: text, default_value: value }; return #{answer.to_json}; }"
         | 
| 101 | 
            +
                      yield
         | 
| 102 | 
            +
                      result = @browser.wd.execute_script "return window.__lastWatirPrompt"
         | 
| 103 | 
            +
                      switch_to_default_content(frame)
         | 
| 104 | 
            +
                      result && result.dup.each_key { |k| result[k.to_sym] = result.delete(k) }
         | 
| 105 | 
            +
                      result
         | 
| 90 106 | 
             
                    end
         | 
| 91 107 |  | 
| 92 108 | 
             
                    #
         | 
| @@ -97,6 +113,17 @@ module PageObject | |
| 97 113 | 
             
                      win_id = {identifier.keys.first => /#{Regexp.escape(identifier.values.first)}/}
         | 
| 98 114 | 
             
                      @browser.window(win_id).use &block
         | 
| 99 115 | 
             
                    end
         | 
| 116 | 
            +
             | 
| 117 | 
            +
                    #
         | 
| 118 | 
            +
                    # platform method to switch to a frame and execute a block
         | 
| 119 | 
            +
                    # See PageObject#in_frame
         | 
| 120 | 
            +
                    #
         | 
| 121 | 
            +
                    def in_frame(identifier, frame=nil, &block)
         | 
| 122 | 
            +
                      frame = [] if frame.nil?
         | 
| 123 | 
            +
                      frame << identifier
         | 
| 124 | 
            +
                      block.call(frame)
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                    end
         | 
| 100 127 |  | 
| 101 128 | 
             
                    #
         | 
| 102 129 | 
             
                    # platform method to refresh the page
         | 
| @@ -708,6 +735,15 @@ module PageObject | |
| 708 735 | 
             
                    def switch_to_default_content(frame_identifiers)
         | 
| 709 736 | 
             
                      @browser.wd.switch_to.default_content unless frame_identifiers.nil?          
         | 
| 710 737 | 
             
                    end
         | 
| 738 | 
            +
             | 
| 739 | 
            +
                    def switch_to_frame(frame_identifiers)
         | 
| 740 | 
            +
                      unless frame_identifiers.nil?
         | 
| 741 | 
            +
                        frame_identifiers.each do |frame_id|
         | 
| 742 | 
            +
                          value = frame_id.values.first
         | 
| 743 | 
            +
                          @browser.wd.switch_to.frame(value)
         | 
| 744 | 
            +
                        end
         | 
| 745 | 
            +
                      end          
         | 
| 746 | 
            +
                    end
         | 
| 711 747 | 
             
                  end
         | 
| 712 748 | 
             
                end
         | 
| 713 749 | 
             
              end
         | 
    
        data/lib/page-object/version.rb
    CHANGED
    
    
    
        data/page-object.gemspec
    CHANGED
    
    | @@ -19,8 +19,8 @@ Gem::Specification.new do |s| | |
| 19 19 | 
             
              s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
         | 
| 20 20 | 
             
              s.require_paths = ["lib"]
         | 
| 21 21 |  | 
| 22 | 
            -
              s.add_dependency 'watir-webdriver', '>= 0.3. | 
| 23 | 
            -
              s.add_dependency 'selenium-webdriver', '>= 2. | 
| 22 | 
            +
              s.add_dependency 'watir-webdriver', '>= 0.3.9'
         | 
| 23 | 
            +
              s.add_dependency 'selenium-webdriver', '>= 2.12.2' 
         | 
| 24 24 |  | 
| 25 25 | 
             
              s.add_development_dependency 'rspec', '>= 2.6.0'
         | 
| 26 26 | 
             
              s.add_development_dependency 'cucumber', '>= 1.1.0'
         | 
| @@ -92,19 +92,22 @@ describe PageObject do | |
| 92 92 | 
             
                  end
         | 
| 93 93 |  | 
| 94 94 | 
             
                  it "should override alert popup behavior" do
         | 
| 95 | 
            -
                    watir_browser.should_receive(: | 
| 95 | 
            +
                    watir_browser.should_receive(:wd).twice.and_return(watir_browser)
         | 
| 96 | 
            +
                    watir_browser.should_receive(:execute_script).twice
         | 
| 96 97 | 
             
                    watir_page_object.alert do
         | 
| 97 98 | 
             
                    end
         | 
| 98 99 | 
             
                  end
         | 
| 99 100 |  | 
| 100 101 | 
             
                  it "should override confirm popup behavior" do
         | 
| 101 | 
            -
                    watir_browser.should_receive(: | 
| 102 | 
            +
                    watir_browser.should_receive(:wd).twice.and_return(watir_browser)
         | 
| 103 | 
            +
                    watir_browser.should_receive(:execute_script).twice
         | 
| 102 104 | 
             
                    watir_page_object.confirm(true) do
         | 
| 103 105 | 
             
                    end
         | 
| 104 106 | 
             
                  end
         | 
| 105 107 |  | 
| 106 108 | 
             
                  it "should override prompt popup behavior" do
         | 
| 107 | 
            -
                    watir_browser.should_receive(: | 
| 109 | 
            +
                    watir_browser.should_receive(:wd).twice.and_return(watir_browser)
         | 
| 110 | 
            +
                    watir_browser.should_receive(:execute_script).twice
         | 
| 108 111 | 
             
                    watir_page_object.prompt("blah") do
         | 
| 109 112 | 
             
                    end
         | 
| 110 113 | 
             
                  end
         | 
    
        metadata
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            name: page-object
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 4 | 
             
              prerelease: 
         | 
| 5 | 
            -
              version: 0.5. | 
| 5 | 
            +
              version: 0.5.1
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors: 
         | 
| 8 8 | 
             
            - Jeff Morgan
         | 
| @@ -10,7 +10,7 @@ autorequire: | |
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 12 |  | 
| 13 | 
            -
            date: 2011-11- | 
| 13 | 
            +
            date: 2011-11-18 00:00:00 Z
         | 
| 14 14 | 
             
            dependencies: 
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 16 16 | 
             
              name: watir-webdriver
         | 
| @@ -20,7 +20,7 @@ dependencies: | |
| 20 20 | 
             
                requirements: 
         | 
| 21 21 | 
             
                - - ">="
         | 
| 22 22 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 23 | 
            -
                    version: 0.3. | 
| 23 | 
            +
                    version: 0.3.9
         | 
| 24 24 | 
             
              type: :runtime
         | 
| 25 25 | 
             
              version_requirements: *id001
         | 
| 26 26 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -31,7 +31,7 @@ dependencies: | |
| 31 31 | 
             
                requirements: 
         | 
| 32 32 | 
             
                - - ">="
         | 
| 33 33 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 34 | 
            -
                    version: 2. | 
| 34 | 
            +
                    version: 2.12.2
         | 
| 35 35 | 
             
              type: :runtime
         | 
| 36 36 | 
             
              version_requirements: *id002
         | 
| 37 37 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -98,6 +98,7 @@ files: | |
| 98 98 | 
             
            - features/hidden_field.feature
         | 
| 99 99 | 
             
            - features/html/frame_1.html
         | 
| 100 100 | 
             
            - features/html/frame_2.html
         | 
| 101 | 
            +
            - features/html/frame_3.html
         | 
| 101 102 | 
             
            - features/html/frames.html
         | 
| 102 103 | 
             
            - features/html/iframes.html
         | 
| 103 104 | 
             
            - features/html/images/circle.png
         | 
| @@ -290,6 +291,7 @@ test_files: | |
| 290 291 | 
             
            - features/hidden_field.feature
         | 
| 291 292 | 
             
            - features/html/frame_1.html
         | 
| 292 293 | 
             
            - features/html/frame_2.html
         | 
| 294 | 
            +
            - features/html/frame_3.html
         | 
| 293 295 | 
             
            - features/html/frames.html
         | 
| 294 296 | 
             
            - features/html/iframes.html
         | 
| 295 297 | 
             
            - features/html/images/circle.png
         |