lib/watir/testcase.rb in commonwatir-1.6.5 vs lib/watir/testcase.rb in commonwatir-1.6.6.rc1
- old
+ new
@@ -1,58 +1,97 @@
-require 'test/unit'
-require 'watir/assertions'
-
-module Watir
-
- class TestCase < Test::Unit::TestCase
- include Watir::Assertions
- @@order = :sequentially
- def initialize name
- throw :invalid_test if name == :default_test && self.class == Watir::TestCase
- super
- end
- class << self
- attr_accessor :test_methods, :order
- def test_methods
- @test_methods ||= []
- end
- def order
- @order || @@order
- end
- def default_order= order
- @@order = order
- end
- def sorted_test_methods
- case order
- when :alphabetically then test_methods.sort
- when :sequentially then test_methods
- when :reversed_sequentially then test_methods.reverse
- when :reversed_alphabetically then test_methods.sort.reverse
- else raise ArgumentError, "Execute option not supported: #{@order}"
- end
- end
- def suite
- suite = Test::Unit::TestSuite.new(name)
- sorted_test_methods.each do |test|
- catch :invalid_test do
- suite << new(test)
- end
- end
- if (suite.empty?)
- catch :invalid_test do
- suite << new(:default_test)
- end
- end
- return suite
- end
- def method_added id
- name = id.id2name
- test_methods << name if name =~ /^test./
- end
- def execute order
- @order = order
- end
- end
- public :add_assertion
- end
-
-end
+require 'test/unit'
+require 'watir/assertions'
+
+module Watir
+
+ # This is a 'test/unit' testcase customized to exeucte test methods sequentially by default
+ # and extra assertions
+ #
+ # Example Usage
+ #
+ # require 'watir/testcase'
+ #
+ # class MyTestCase < Watir::TestCase
+ #
+ # # some helpers
+ # @@browser = nil
+ # def browser
+ # @browser ||= Watir::IE.start(:url, 'http://watir.com/")
+ # end
+ #
+ # # TESTS
+ # def test_text
+ # browser.goto "http://watir.com/"
+ # verify_match "Web Application Testing in Ruby", browser.text
+ # end
+ #
+ # def test_title
+ # verify browser.title == 'Watir'
+ # end
+ #
+ # def test_link
+ # verify_match 'watir.com', browser.link(:text, 'Home').href
+ # end
+ #
+ # def test_navigate_to_examples
+ # browser.div(:id, 'nav').link(:text, 'Examples').click
+ # end
+ #
+ # def test_url
+ # verify_equal browser.url, 'http://watir.com/examples/'
+ # end
+ #
+ # end
+ #
+ class TestCase < Test::Unit::TestCase
+ include Watir::Assertions
+ @@order = :sequentially
+ def initialize name
+ throw :invalid_test if name == :default_test && self.class == Watir::TestCase
+ super
+ end
+ class << self
+ attr_accessor :test_methods, :order
+ def test_methods
+ @test_methods ||= []
+ end
+ def order
+ @order || @@order
+ end
+ def default_order= order
+ @@order = order
+ end
+ def sorted_test_methods
+ case order
+ when :alphabetically then test_methods.sort
+ when :sequentially then test_methods
+ when :reversed_sequentially then test_methods.reverse
+ when :reversed_alphabetically then test_methods.sort.reverse
+ else raise ArgumentError, "Execute option not supported: #{@order}"
+ end
+ end
+ def suite
+ suite = Test::Unit::TestSuite.new(name)
+ sorted_test_methods.each do |test|
+ catch :invalid_test do
+ suite << new(test)
+ end
+ end
+ if (suite.empty?)
+ catch :invalid_test do
+ suite << new(:default_test)
+ end
+ end
+ return suite
+ end
+ def method_added id
+ name = id.id2name
+ test_methods << name if name =~ /^test./
+ end
+ def execute order
+ @order = order
+ end
+ end
+ public :add_assertion
+ end
+
+end