Module: WebUnit

Includes:
Utils
Included in:
Web::Unit, TestCase
Defined in:
lib/webunit/form.rb,
lib/webunit/link.rb,
lib/webunit/frame.rb,
lib/webunit/image.rb,
lib/webunit/table.rb,
lib/webunit/utils.rb,
lib/webunit/assert.rb,
lib/webunit/cookie.rb,
lib/webunit/params.rb,
lib/webunit/parser.rb,
lib/webunit/jscript.rb,
lib/webunit/runtest.rb,
lib/webunit/htmlelem.rb,
lib/webunit/response.rb,
lib/webunit/testcase.rb,
lib/webunit/converter.rb,
lib/webunit/converter.rb,
lib/webunit/domwalker.rb,
lib/webunit/exception.rb,
lib/webunit/ui/cui/testrunner.rb

Overview

WebUnit::exception

Copyright(C) 2001 yuichi TAKAHASHI
$Id: exception.rb,v 1.1.1.1 2003/01/21 11:50:40 yuichi Exp $

Defined Under Namespace

Modules: UI, Utils Classes: BadHtmlTags, BadOperation, BaseDomWalker, Cookies, DomWalkerError, ElemNotFound, Form, Frame, HtmlElem, HttpNotFound, Image, Input, InputCheckbox, InputFile, InputImage, InputRadio, InputReset, InputSubmit, JSciriptOpenObject, Link, MemWriter, NilTableCell, Param, Parser, Response, Select, SelectOption, Table, TableCell, TableRow, TestCase, Textarea

Constant Summary collapse

BOUNDARY =
'--divider'
AVAILABLE_FRAMEWORKS =
[]
AVAILABLE_XMLPARSERS =
[]
USING_XMLPARSER =
'none'

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Utils

#complete_url, #orthop_url, #parse_url

Class Method Details

.dispatch(args) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/webunit/runtest.rb', line 3

def WebUnit.dispatch(args)
  f_type = args.shift
  case f_type
  when '-fr'
    ['AVAILABLE_FRAMEWORKS', %w(RubyUnit runit/testcase)]
  when '-ft'
    ['AVAILABLE_FRAMEWORKS', %w(Test::Unit test/unit/testcase)]
  when '-xr'
    ['AVAILABLE_XMLPARSERS', %w(REXML rexml/document)]
  when '-xn'
    ['AVAILABLE_XMLPARSERS', %w(NQXML nqxml/treeparser)]
  else
    args.unshift(f_type)
    nil
  end
end

.runtest(args) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/webunit/runtest.rb', line 20

def WebUnit.runtest(args)
  if args.size > 0
    while res = dispatch(args)
      next if WebUnit.const_defined?(res[0])
      WebUnit.const_set(res[0], [res[1]])
    end
    require 'webunit/ui/cui/testrunner'
    test_runner = WebUnit::UI::CUI::TestRunner.new
    args.each {|f| require f}
    test_runner.run
  else
    puts "#{File.basename($0)} [-fr|-ft|-xr|-xn] testfile1 [, testfile2, ...]"
    puts "\t-fr : use RubyUnit as Testing Framework"
    puts "\t-ft : use Test::Unit as Testing Framework(default)"
    puts "\t-xr : use REXML as XML parser(default)"
    puts "\t-xn : use NQXML as XML parser"
  end
end

Instance Method Details

#assert_attrs(expected, actual, message = "") ⇒ Object

— WebUnit#assert_attrs( expected, actual, message=“” )

check attribute of input field.


101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/webunit/assert.rb', line 101

def assert_attrs( expected, actual, message="" )
  setup_assert
  message << " " unless message == ""
  expected.each do |k,v|
    av = nil
    if actual.respond_to?( "#{k}" )
      av = actual.send( "#{k}" )
    else
      av = actual.attrs[k] if actual.attrs.key?( k )
    end
    unless av == v
      message << "expected:<#{k}:#{v}> but was:<#{k}:#{av}>"
      raise_assertion_error( message )
    end
  end
end

#assert_include(expected, actual, message = "") ⇒ Object

— WebUnit#assert_include( expected, actual, message=“” )

check ((|actual|)) has HtmlElems, which have ((|expected|)) as data


125
126
127
128
129
130
131
132
133
134
# File 'lib/webunit/assert.rb', line 125

def assert_include( expected, actual, message="" )
  setup_assert
  message << " " unless message == ""
  unless actual.has?( expected ) then
    if actual.search( expected ) == []
      message << "expected:<#{expected.inspect}> but not exist in <#{actual.inspect}>."
      raise_assertion_error( message )
    end
  end
end

#assert_input(name, type, value, actual, message = "") ⇒ Object

— WebUnit#assert_input( name, type, value, actual, message=“” )

check attribute of input field.


48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/webunit/assert.rb', line 48

def assert_input( name, type, value, actual, message="" )
  setup_assert
  message << " " unless message == ""
  unless name == actual.name
    message << "expected:<name:#{name}> but was:<name:#{actual.name}>"
    raise_assertion_error( message )
  end
  unless type == actual.type
    message << "expected:<type:#{type}> but was:<type:#{actual.type}>"
    raise_assertion_error( message )
  end
  unless value == actual.value
    message << "expected:<value:#{value}> but was:<value:#{actual.value}>"
    raise_assertion_error( message )
  end
end

#assert_select_option(value, data, selected, actual, message = "") ⇒ Object

— WebUnit#assert_select_option( value, data, selected, actual, message=“” )



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/webunit/assert.rb', line 71

def assert_select_option( value, data, selected, actual, message="" )
  setup_assert
  message << " " unless message == ""
  unless value == actual.value
    message << "expected:<value:#{value}> but was:<value:#{actual.value}>"
    raise_assertion_error( message )
  end
  data = value if data == nil
  unless data == actual.data
    message << "expected:<data:#{data}> but was:<data:#{actual.data}>"
    raise_assertion_error( message )
  end
  unless selected == ( actual.stat == 'on' )
  #unless selected == ( '' == actual.attrs['selected'] )
    if selected
      message << "expected:<selected> but was:<unselected>"
    else
      message << "expected:<unselected> but was:<selected>"
    end
    raise_assertion_error( message )
  end
end

#assert_title(expected, actual, message = "") ⇒ Object

— WebUnit#assert_title( expected, actual, message=“” )

check title of ((|actual|)) and ((|expected|)) as string,
append formatted body to message, when both differ.


142
143
144
145
146
147
148
149
150
# File 'lib/webunit/assert.rb', line 142

def assert_title( expected, actual, message="" )
  setup_assert
  message << " " unless message == ""
  unless actual.title == expected then
    message << "expected:<#{expected}> but not exist in <#{actual.title}>."
    message << "\n#{'='*72}#{actual.format}\n#{'='*72}\n"
    raise_assertion_error( message )
  end
end

#assert_urls(expected, actual, message = '') ⇒ Object

— WebUnit#assert_urls(expected,actual,message=”)

compare two URLs. raise AssertionFailedError, when these are diferent.


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/webunit/assert.rb', line 18

def assert_urls( expected, actual, message='' )
  setup_assert
  message << " " unless message == ""
  if expected == nil || actual == nil
    message << "expected:<nil> but was:<#{actual}>" if expected == nil
    message << "expected:<#{expected}> but was:<nil>" if actual == nil
    raise_assertion_error( message )
  end

  some_expected = [expected, $URLBASE + expected]
  patterns = [actual, orthop_url(actual)]
  for exp in some_expected
    for e in [exp, orthop_url(exp)]
      for pattern in patterns
        return if e == pattern
      end
    end
  end

  message << "expected:<#{expected}> but was:<#{actual}>"
  raise_assertion_error( message )
end