Extending Watir::Checkbox class

I have a script which contains class extensions. The Checkbox.test() is
obviously just a stub right now, but I'm trying to get my head around
the concept.

#-- contained in classExtensions.rb
module Watir

  class Checkbox < Watir::RadioCheckCommon

    def test(property, expectedResult)
      puts("Checkbox.test()")
    end

  end

end

In another script, I have the following...

require 'watir'
require 'sqlClient'
require 'classExtensions'

.
.
.

ie.checkboxes.each {|cb|
  cb.test("jfkdsajf", "jfkdlas", "jfkdlasjf")
}

However, I'm getting the following error:
#<NoMethodError: private method `test' called for #<Watir::CheckBox>>

What am I doing wrong here?

···

--
Posted via http://www.ruby-forum.com/.

Patrick Spence wrote:
<snip>

However, I'm getting the following error:
#<NoMethodError: private method `test' called for #<Watir::CheckBox>>

What am I doing wrong here?

Anyone?

···

--
Posted via http://www.ruby-forum.com/.

> What am I doing wrong here?

Anyone?

Could you please explain what you are trying to do?

Bret Pettichord wrote:

> What am I doing wrong here?

Anyone?

Could you please explain what you are trying to do?

I googled "extending watir" and found this...
http://wiki.openqa.org/pages/viewpage.action?pageId=1119, which got me
pointed in the right direction. Here's the definition of the class
extension, although I must admit I don't fully understand it. At any
rate, when I run the test script, "test" is now listed as *public*
method.

class Watir::CheckBox

  def test(property, expectedResult)
    puts("CheckBox.test(\"#{property}\", \"#{expectedResult}\")")
  end

end

Bret, in response to your query... I'm having to modify the way we are
checking properties on web page controls; visible, enabled, disabled...
blahblah, in order to "conform" to a new way my supervisor wants tests
run. When I started on this project, I was looking at the forms and
running the tests on each form as a whole. We are now breaking the forms
down to their individual components and testing each one, comparing the
expected test results, contained in a SQL Server table, with the actual
result. I only wish someone had thought about that 3-months ago,
probably should've been me actually. Most of the work already done by
myself and a coworker will have to be re-written to conform to the new
testing "model". Oh well... it beats standing in a line!

--Patrick

···

--
Posted via http://www.ruby-forum.com/.

Patrick Spence wrote:
<snip>

I googled "extending watir" and found this...
http://wiki.openqa.org/pages/viewpage.action?pageId=1119

<snip>
Sorry 'bout the password protected site, I'd forgotten about that.
Anyway, I found the following code posted:

class Watir::Element

  # If any parent element isn't visible then we cannot write to the
  # element. The only realiable way to determine this is to iterate
  # up the DOM element tree checking every element to make sure it's
  # visible.
  def visible?
    # Now iterate up the DOM element tree and return false if any
    # parent element isn't visible or is disabled.
    object = document
    while object
      begin
        if object.style.invoke('visibility') =~ /^hidden$/i
          return false
        end
        if object.style.invoke('display') =~ /^none$/i
          return false
        end
        if object.invoke('isDisabled')
          return false
        end
      rescue WIN32OLERuntimeError
      end
      object = object.parentElement
    end
    true
  end
end

···

--
Posted via http://www.ruby-forum.com/.