glib2 0.90.8 → 0.90.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. data/ChangeLog +44 -0
  2. data/Rakefile +1 -0
  3. data/ext/glib2/rbglib.h +1 -1
  4. data/ext/glib2/rbglib_iochannel.c +15 -6
  5. data/ext/glib2/rbgobj_signal.c +1 -1
  6. data/ext/glib2/rbgobject.h +1 -1
  7. data/lib/gnome2-raketask.rb +4 -2
  8. data/lib/mkmf-gnome2.rb +47 -23
  9. data/test/glib-test-init.rb +1 -3
  10. metadata +20 -121
  11. data/test-unit/COPYING +0 -56
  12. data/test-unit/GPL +0 -340
  13. data/test-unit/History.txt +0 -279
  14. data/test-unit/Manifest.txt +0 -110
  15. data/test-unit/PSFL +0 -271
  16. data/test-unit/README.txt +0 -75
  17. data/test-unit/Rakefile +0 -53
  18. data/test-unit/TODO +0 -5
  19. data/test-unit/bin/testrb +0 -5
  20. data/test-unit/html/bar.png +0 -0
  21. data/test-unit/html/bar.svg +0 -153
  22. data/test-unit/html/developer.png +0 -0
  23. data/test-unit/html/developer.svg +0 -469
  24. data/test-unit/html/famfamfam-logo.png +0 -0
  25. data/test-unit/html/favicon.ico +0 -0
  26. data/test-unit/html/favicon.png +0 -0
  27. data/test-unit/html/favicon.svg +0 -82
  28. data/test-unit/html/heading-mark.png +0 -0
  29. data/test-unit/html/heading-mark.svg +0 -393
  30. data/test-unit/html/index.html +0 -285
  31. data/test-unit/html/index.html.ja +0 -299
  32. data/test-unit/html/install.png +0 -0
  33. data/test-unit/html/install.svg +0 -636
  34. data/test-unit/html/jp.png +0 -0
  35. data/test-unit/html/kinotan-failure.png +0 -0
  36. data/test-unit/html/kinotan-pass.png +0 -0
  37. data/test-unit/html/logo.png +0 -0
  38. data/test-unit/html/logo.svg +0 -483
  39. data/test-unit/html/reference.png +0 -0
  40. data/test-unit/html/rubyforge.png +0 -0
  41. data/test-unit/html/tango-logo.png +0 -0
  42. data/test-unit/html/test-unit.css +0 -339
  43. data/test-unit/html/tutorial.png +0 -0
  44. data/test-unit/html/tutorial.svg +0 -559
  45. data/test-unit/html/us.png +0 -0
  46. data/test-unit/images/color-diff.png +0 -0
  47. data/test-unit/lib/test/unit.rb +0 -328
  48. data/test-unit/lib/test/unit/assertionfailederror.rb +0 -25
  49. data/test-unit/lib/test/unit/assertions.rb +0 -1792
  50. data/test-unit/lib/test/unit/attribute.rb +0 -125
  51. data/test-unit/lib/test/unit/autorunner.rb +0 -415
  52. data/test-unit/lib/test/unit/collector.rb +0 -38
  53. data/test-unit/lib/test/unit/collector/descendant.rb +0 -23
  54. data/test-unit/lib/test/unit/collector/dir.rb +0 -108
  55. data/test-unit/lib/test/unit/collector/load.rb +0 -187
  56. data/test-unit/lib/test/unit/collector/objectspace.rb +0 -34
  57. data/test-unit/lib/test/unit/collector/xml.rb +0 -250
  58. data/test-unit/lib/test/unit/color-scheme.rb +0 -106
  59. data/test-unit/lib/test/unit/color.rb +0 -96
  60. data/test-unit/lib/test/unit/diff.rb +0 -740
  61. data/test-unit/lib/test/unit/error.rb +0 -131
  62. data/test-unit/lib/test/unit/exceptionhandler.rb +0 -39
  63. data/test-unit/lib/test/unit/failure.rb +0 -136
  64. data/test-unit/lib/test/unit/fixture.rb +0 -185
  65. data/test-unit/lib/test/unit/notification.rb +0 -129
  66. data/test-unit/lib/test/unit/omission.rb +0 -191
  67. data/test-unit/lib/test/unit/pending.rb +0 -150
  68. data/test-unit/lib/test/unit/priority.rb +0 -180
  69. data/test-unit/lib/test/unit/runner/console.rb +0 -52
  70. data/test-unit/lib/test/unit/runner/emacs.rb +0 -8
  71. data/test-unit/lib/test/unit/runner/tap.rb +0 -8
  72. data/test-unit/lib/test/unit/runner/xml.rb +0 -15
  73. data/test-unit/lib/test/unit/testcase.rb +0 -515
  74. data/test-unit/lib/test/unit/testresult.rb +0 -125
  75. data/test-unit/lib/test/unit/testsuite.rb +0 -134
  76. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +0 -14
  77. data/test-unit/lib/test/unit/ui/console/testrunner.rb +0 -467
  78. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +0 -63
  79. data/test-unit/lib/test/unit/ui/tap/testrunner.rb +0 -82
  80. data/test-unit/lib/test/unit/ui/testrunner.rb +0 -53
  81. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +0 -86
  82. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +0 -41
  83. data/test-unit/lib/test/unit/ui/xml/testrunner.rb +0 -224
  84. data/test-unit/lib/test/unit/util/backtracefilter.rb +0 -42
  85. data/test-unit/lib/test/unit/util/method-owner-finder.rb +0 -28
  86. data/test-unit/lib/test/unit/util/observable.rb +0 -90
  87. data/test-unit/lib/test/unit/util/output.rb +0 -31
  88. data/test-unit/lib/test/unit/util/procwrapper.rb +0 -48
  89. data/test-unit/lib/test/unit/version.rb +0 -7
  90. data/test-unit/sample/adder.rb +0 -13
  91. data/test-unit/sample/subtracter.rb +0 -12
  92. data/test-unit/sample/test_adder.rb +0 -20
  93. data/test-unit/sample/test_subtracter.rb +0 -20
  94. data/test-unit/sample/test_user.rb +0 -23
  95. data/test-unit/test/collector/test-descendant.rb +0 -133
  96. data/test-unit/test/collector/test-load.rb +0 -442
  97. data/test-unit/test/collector/test_dir.rb +0 -406
  98. data/test-unit/test/collector/test_objectspace.rb +0 -100
  99. data/test-unit/test/run-test.rb +0 -22
  100. data/test-unit/test/test-assertions.rb +0 -1849
  101. data/test-unit/test/test-attribute.rb +0 -86
  102. data/test-unit/test/test-color-scheme.rb +0 -69
  103. data/test-unit/test/test-color.rb +0 -47
  104. data/test-unit/test/test-diff.rb +0 -518
  105. data/test-unit/test/test-emacs-runner.rb +0 -60
  106. data/test-unit/test/test-fixture.rb +0 -324
  107. data/test-unit/test/test-notification.rb +0 -33
  108. data/test-unit/test/test-omission.rb +0 -81
  109. data/test-unit/test/test-pending.rb +0 -70
  110. data/test-unit/test/test-priority.rb +0 -119
  111. data/test-unit/test/test-testcase.rb +0 -569
  112. data/test-unit/test/test_error.rb +0 -26
  113. data/test-unit/test/test_failure.rb +0 -33
  114. data/test-unit/test/test_testresult.rb +0 -113
  115. data/test-unit/test/test_testsuite.rb +0 -137
  116. data/test-unit/test/testunit-test-util.rb +0 -14
  117. data/test-unit/test/ui/test_tap.rb +0 -33
  118. data/test-unit/test/ui/test_testrunmediator.rb +0 -20
  119. data/test-unit/test/util/test-method-owner-finder.rb +0 -38
  120. data/test-unit/test/util/test-output.rb +0 -11
  121. data/test-unit/test/util/test_backtracefilter.rb +0 -41
  122. data/test-unit/test/util/test_observable.rb +0 -102
  123. data/test-unit/test/util/test_procwrapper.rb +0 -36
@@ -1,38 +0,0 @@
1
- module Test
2
- module Unit
3
- module Collector
4
- def initialize
5
- @filters = []
6
- end
7
-
8
- def filter=(filters)
9
- @filters = case(filters)
10
- when Proc
11
- [filters]
12
- when Array
13
- filters
14
- end
15
- end
16
-
17
- def add_suite(destination, suite)
18
- to_delete = suite.tests.find_all {|t| !include?(t)}
19
- to_delete.each {|t| suite.delete(t)}
20
- destination << suite unless suite.empty?
21
- end
22
-
23
- def include?(test)
24
- return true if(@filters.empty?)
25
- @filters.each do |filter|
26
- return false if filter[test] == false
27
- end
28
- true
29
- end
30
-
31
- def sort(suites)
32
- suites.sort_by do |suite|
33
- [suite.priority, suite.name || suite.to_s]
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,23 +0,0 @@
1
- require 'test/unit/collector'
2
-
3
- module Test
4
- module Unit
5
- module Collector
6
- class Descendant
7
- include Collector
8
-
9
- NAME = 'collected from the subclasses of TestCase'
10
-
11
- def collect(name=NAME)
12
- suite = TestSuite.new(name)
13
- sub_suites = []
14
- TestCase::DESCENDANTS.each do |descendant_test_case|
15
- add_suite(sub_suites, descendant_test_case.suite)
16
- end
17
- sort(sub_suites).each {|s| suite << s}
18
- suite
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,108 +0,0 @@
1
- require 'test/unit/testsuite'
2
- require 'test/unit/collector'
3
-
4
- module Test
5
- module Unit
6
- module Collector
7
- class Dir
8
- include Collector
9
-
10
- attr_reader :pattern, :exclude
11
- attr_accessor :base
12
-
13
- def initialize(dir=::Dir, file=::File, object_space=::ObjectSpace, req=nil)
14
- super()
15
- @dir = dir
16
- @file = file
17
- @object_space = object_space
18
- @req = req
19
- @pattern = [/\btest_.*\.rb\Z/m]
20
- @exclude = []
21
- @base = nil
22
- end
23
-
24
- def collect(*from)
25
- basedir = @base
26
- $:.push(basedir) if basedir
27
- if(from.empty?)
28
- recursive_collect('.', find_test_cases)
29
- elsif(from.size == 1)
30
- recursive_collect(from.first, find_test_cases)
31
- else
32
- suites = []
33
- from.each do |f|
34
- suite = recursive_collect(f, find_test_cases)
35
- suites << suite unless(suite.tests.empty?)
36
- end
37
- suite = TestSuite.new("[#{from.join(', ')}]")
38
- sort(suites).each{|s| suite << s}
39
- suite
40
- end
41
- ensure
42
- $:.delete_at($:.rindex(basedir)) if basedir
43
- end
44
-
45
- def find_test_cases(ignore=[])
46
- cases = []
47
- @object_space.each_object(Class) do |c|
48
- cases << c if(c < TestCase && !ignore.include?(c))
49
- end
50
- ignore.concat(cases)
51
- cases
52
- end
53
-
54
- def recursive_collect(name, already_gathered)
55
- sub_suites = []
56
- path = realdir(name)
57
- if @file.directory?(path)
58
- dir_name = name unless name == '.'
59
- @dir.entries(path).each do |e|
60
- next if(e == '.' || e == '..')
61
- e_name = dir_name ? @file.join(dir_name, e) : e
62
- if @file.directory?(realdir(e_name))
63
- next if /\A(?:CVS|\.svn|\.git)\z/ =~ e
64
- sub_suite = recursive_collect(e_name, already_gathered)
65
- sub_suites << sub_suite unless(sub_suite.empty?)
66
- else
67
- next if /~\z/ =~ e_name or /\A\.\#/ =~ e
68
- if @pattern and !@pattern.empty?
69
- next unless @pattern.any? {|pat| pat =~ e_name}
70
- end
71
- if @exclude and !@exclude.empty?
72
- next if @exclude.any? {|pat| pat =~ e_name}
73
- end
74
- collect_file(e_name, sub_suites, already_gathered)
75
- end
76
- end
77
- else
78
- collect_file(name, sub_suites, already_gathered)
79
- end
80
- suite = TestSuite.new(@file.basename(name))
81
- sort(sub_suites).each{|s| suite << s}
82
- suite
83
- end
84
-
85
- def collect_file(name, suites, already_gathered)
86
- dir = @file.dirname(@file.expand_path(name, @base))
87
- $:.unshift(dir)
88
- if(@req)
89
- @req.require(name)
90
- else
91
- require(name)
92
- end
93
- find_test_cases(already_gathered).each{|t| add_suite(suites, t.suite)}
94
- ensure
95
- $:.delete_at($:.rindex(dir)) if(dir)
96
- end
97
-
98
- def realdir(path)
99
- if @base
100
- @file.join(@base, path)
101
- else
102
- path
103
- end
104
- end
105
- end
106
- end
107
- end
108
- end
@@ -1,187 +0,0 @@
1
- require 'pathname'
2
-
3
- require 'test/unit/testsuite'
4
- require 'test/unit/collector'
5
-
6
- module Test
7
- module Unit
8
- module Collector
9
- class Load
10
- include Collector
11
-
12
- attr_reader :patterns, :excludes, :base
13
-
14
- def initialize
15
- super
16
- @system_excludes = [/~\z/, /\A\.\#/]
17
- @system_directory_excludes = [/\A(?:CVS|\.svn|\.git)\z/]
18
- @patterns = [/\Atest[_\-].+\.rb\z/m, /[_\-]test\.rb\z/]
19
- @excludes = []
20
- @base = nil
21
- @require_failed_infos = []
22
- end
23
-
24
- def base=(base)
25
- base = Pathname(base) unless base.nil?
26
- @base = base
27
- end
28
-
29
- def collect(*froms)
30
- add_load_path(@base) do
31
- froms = ["."] if froms.empty?
32
- test_suites = []
33
- already_gathered = find_test_cases
34
- froms.each do |from|
35
- from = resolve_path(from)
36
- if from.directory?
37
- test_suite = collect_recursive(from, already_gathered)
38
- test_suites << test_suite unless test_suite.tests.empty?
39
- else
40
- collect_file(from, test_suites, already_gathered)
41
- end
42
- end
43
- add_require_failed_test_suite(test_suites)
44
-
45
- if test_suites.size > 1
46
- test_suite = TestSuite.new("[#{froms.join(', ')}]")
47
- sort(test_suites).each do |sub_test_suite|
48
- test_suite << sub_test_suite
49
- end
50
- else
51
- test_suite = test_suites.first
52
- end
53
-
54
- test_suite
55
- end
56
- end
57
-
58
- def find_test_cases(ignore=[])
59
- test_cases = []
60
- TestCase::DESCENDANTS.each do |test_case|
61
- test_cases << test_case unless ignore.include?(test_case)
62
- end
63
- ignore.concat(test_cases)
64
- test_cases
65
- end
66
-
67
- private
68
- def collect_recursive(path, already_gathered)
69
- sub_test_suites = []
70
-
71
- if path.directory?
72
- directories, files = path.children.partition do |child|
73
- child.directory?
74
- end
75
-
76
- files.each do |child|
77
- next if excluded_file?(child.basename.to_s)
78
- collect_file(child, sub_test_suites, already_gathered)
79
- end
80
-
81
- directories.each do |child|
82
- next if excluded_directory?(child.basename.to_s)
83
- sub_test_suite = collect_recursive(child, already_gathered)
84
- sub_test_suites << sub_test_suite unless sub_test_suite.empty?
85
- end
86
- else
87
- unless excluded_file?(path.basename.to_s)
88
- collect_file(path, sub_test_suites, already_gathered)
89
- end
90
- end
91
-
92
- test_suite = TestSuite.new(path.basename.to_s)
93
- sort(sub_test_suites).each do |sub_test_suite|
94
- test_suite << sub_test_suite
95
- end
96
- test_suite
97
- end
98
-
99
- def collect_file(path, test_suites, already_gathered)
100
- @program_file ||= File.expand_path($0)
101
- expanded_path = path.expand_path
102
- return if @program_file == expanded_path.to_s
103
- add_load_path(expanded_path.dirname) do
104
- begin
105
- require(path.to_s)
106
- rescue LoadError
107
- @require_failed_infos << {:path => expanded_path, :exception => $!}
108
- end
109
- find_test_cases(already_gathered).each do |test_case|
110
- add_suite(test_suites, test_case.suite)
111
- end
112
- end
113
- end
114
-
115
- def resolve_path(path)
116
- if @base
117
- @base + path
118
- else
119
- Pathname(path)
120
- end
121
- end
122
-
123
- def add_load_path(path)
124
- $LOAD_PATH.push(path.to_s) if path
125
- yield
126
- ensure
127
- $LOAD_PATH.delete_at($LOAD_PATH.rindex(path.to_s)) if path
128
- end
129
-
130
- def excluded_directory?(base)
131
- @system_directory_excludes.any? {|pattern| pattern =~ base}
132
- end
133
-
134
- def excluded_file?(base)
135
- return true if @system_excludes.any? {|pattern| pattern =~ base}
136
-
137
- patterns = @patterns || []
138
- unless patterns.empty?
139
- return true unless patterns.any? {|pattern| pattern =~ base}
140
- end
141
-
142
- excludes = @excludes || []
143
- unless excludes.empty?
144
- return true if excludes.any? {|pattern| pattern =~ base}
145
- end
146
-
147
- false
148
- end
149
-
150
- def add_require_failed_test_suite(test_suites)
151
- return if @require_failed_infos.empty?
152
-
153
- require_failed_infos = @require_failed_infos
154
- require_failed_omissions = Class.new(Test::Unit::TestCase)
155
- require_failed_omissions.class_eval do
156
- class << self
157
- def name
158
- "RequireFailedOmissions"
159
- end
160
- end
161
-
162
- require_failed_infos.each do |info|
163
- path = info[:path]
164
- normalized_path = path.to_s.gsub(/[^a-z0-9\_]+/i, '_')
165
- normalized_path = normalized_path.gsub(/\A_+/, '')
166
- exception = info[:exception]
167
- define_method("test_require_#{normalized_path}") do
168
- @require_failed_exception = exception
169
- omit("failed to load: <#{path}>: <#{exception.message}>")
170
- end
171
- end
172
-
173
- def priority
174
- 100
175
- end
176
-
177
- def filter_backtrace(location)
178
- super(@require_failed_exception.backtrace)
179
- end
180
- end
181
-
182
- add_suite(test_suites, require_failed_omissions.suite)
183
- end
184
- end
185
- end
186
- end
187
- end
@@ -1,34 +0,0 @@
1
- # Author:: Nathaniel Talbott.
2
- # Copyright:: Copyright (c) 2000-2003 Nathaniel Talbott. All rights reserved.
3
- # License:: Ruby license.
4
-
5
- require 'test/unit/collector'
6
-
7
- module Test
8
- module Unit
9
- module Collector
10
- class ObjectSpace
11
- include Collector
12
-
13
- NAME = 'collected from the ObjectSpace'
14
-
15
- def initialize(source=::ObjectSpace)
16
- super()
17
- @source = source
18
- end
19
-
20
- def collect(name=NAME)
21
- suite = TestSuite.new(name)
22
- sub_suites = []
23
- @source.each_object(Class) do |klass|
24
- if(Test::Unit::TestCase > klass)
25
- add_suite(sub_suites, klass.suite)
26
- end
27
- end
28
- sort(sub_suites).each{|s| suite << s}
29
- suite
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,250 +0,0 @@
1
- #--
2
- #
3
- # Author:: Kouhei Sutou
4
- # Copyright::
5
- # * Copyright (c) 2011 Kouhei Sutou <kou@clear-code.com>
6
- # License:: Ruby license.
7
-
8
- # just test!!! don't use it yet!!!
9
-
10
- require 'test/unit/collector'
11
-
12
- require 'rexml/document'
13
- require 'rexml/streamlistener'
14
-
15
- module Test
16
- module Unit
17
- module Collector
18
- class XML
19
- include Collector
20
-
21
- def collect(xml_log_path)
22
- listener = Listener.new
23
- File.open(xml_log_path) do |xml_log|
24
- parser = REXML::Parsers::StreamParser.new(xml_log, listener)
25
- parser.parse
26
- end
27
- suite = TestSuite.new("tests in #{xml_log_path}")
28
- suites = listener.test_suites
29
- sort(suites).each {|s| add_suite(suite, s)}
30
- suite
31
- end
32
-
33
- class Listener
34
- include REXML::StreamListener
35
-
36
- attr_reader :test_suites
37
- def initialize
38
- @ns_stack = [{"xml" => :xml}]
39
- @tag_stack = [["", :root]]
40
- @text_stack = ['']
41
- @state_stack = [:root]
42
- @values = {}
43
- @test_suites = []
44
- end
45
-
46
- def tag_start(name, attributes)
47
- @text_stack.push('')
48
-
49
- ns = @ns_stack.last.dup
50
- attrs = {}
51
- attributes.each do |n, v|
52
- if /\Axmlns(?:\z|:)/ =~ n
53
- ns[$POSTMATCH] = v
54
- else
55
- attrs[n] = v
56
- end
57
- end
58
- @ns_stack.push(ns)
59
-
60
- _parent_tag = parent_tag
61
- prefix, local = split_name(name)
62
- uri = _ns(ns, prefix)
63
- @tag_stack.push([uri, local])
64
-
65
- state = next_state(@state_stack.last, uri, local)
66
- @state_stack.push(state)
67
- case state
68
- when :test_suite, :test_case
69
- @values = {}
70
- when :test
71
- @values = {}
72
- @n_pass_assertions = 0 if _parent_tag == "start-test"
73
- when :backtrace
74
- @backtrace = []
75
- @values_backup = @values
76
- @values = {}
77
- end
78
- end
79
-
80
- def tag_end(name)
81
- state = @state_stack.pop
82
- text = @text_stack.pop
83
- uri, local = @tag_stack.pop
84
- no_action_states = [:root, :stream]
85
- case state
86
- when *no_action_states
87
- # do nothing
88
- when :test_suite
89
- test_suite_end
90
- when :complete_test_case
91
- @test_suites.last << @test_case.suite
92
- when :test_case
93
- test_case_end
94
- when :result
95
- @result = @values
96
- when :test
97
- test_end
98
- when :pass_assertion
99
- @n_pass_assertions += 1
100
- when :backtrace
101
- @values = @values_backup
102
- @values["backtrace"] = @backtrace
103
- when :entry
104
- file = @values['file']
105
- line = @values['line']
106
- info = @values['info']
107
- @backtrace << "#{file}:#{line}: #{info}"
108
- @values = {}
109
- else
110
- local = normalize_local(local)
111
- @values[local] = text
112
- end
113
- @ns_stack.pop
114
- end
115
-
116
- def text(data)
117
- @text_stack.last << data
118
- end
119
-
120
- private
121
- def _ns(ns, prefix)
122
- ns.fetch(prefix, "")
123
- end
124
-
125
- NAME_SPLIT = /^(?:([\w:][-\w\d.]*):)?([\w:][-\w\d.]*)/
126
- def split_name(name)
127
- name =~ NAME_SPLIT
128
- [$1 || '', $2]
129
- end
130
-
131
- STATE_TABLE = {
132
- :root => [:stream],
133
- :stream => [:ready_test_suite,
134
- :start_test_suite,
135
- :ready_test_case,
136
- :start_test_case,
137
- :start_test,
138
- :pass_assertion,
139
- :test_result,
140
- :complete_test,
141
- :complete_test_case,
142
- :complete_test_suite,
143
- :success],
144
- :ready_test_suite => [:n_tests],
145
- :start_test_suite => [:test_suite],
146
- :ready_test_case => [:test_case,
147
- :n_tests],
148
- :start_test_case => [:test_case],
149
- :start_test => [:test],
150
- :pass_assertion => [:test],
151
- :complete_test => [:test, :success],
152
- :complete_test_case => [:test_case,
153
- :elapsed,
154
- :success],
155
- :complete_test_suite => [:test_suite,
156
- :success],
157
- :test_suite => [:start_time,
158
- :elapsed],
159
- :test_case => [:name,
160
- :start_time,
161
- :elapsed],
162
- :test => [:name,
163
- :start_time,
164
- :elapsed],
165
- :test_result => [:test,
166
- :result],
167
- :result => [:test_case,
168
- :test,
169
- :status,
170
- :backtrace,
171
- :detail],
172
- :backtrace => [:entry],
173
- :entry => [:file,
174
- :line,
175
- :info],
176
- }
177
- def next_state(current_state, uri, local)
178
- local = normalize_local(local)
179
- valid_elements = STATE_TABLE[current_state]
180
- if valid_elements.nil?
181
- raise "unexpected element: #{current_path}"
182
- end
183
- next_state = local.to_sym
184
- unless valid_elements.include?(next_state)
185
- raise "unexpected element: #{current_path}"
186
- end
187
- next_state
188
- end
189
-
190
- def current_path
191
- locals = @tag_stack.collect do |uri, local|
192
- local
193
- end
194
- ["", *locals].join("/")
195
- end
196
-
197
- def normalize_local(local)
198
- local.gsub(/-/, "_")
199
- end
200
-
201
- def parent_tag
202
- @tag_stack.last[1]
203
- end
204
-
205
- def test_suite_end
206
- return unless parent_tag == "start-test-suite"
207
- suite = TestSuite.new
208
- ["start_time", "elapsed_time", "n_tests"].each do |key|
209
- if @values.has_key?(key)
210
- suite.instance_variable_set("@#{key}", @values[key])
211
- end
212
- end
213
- @test_suites << suite
214
- end
215
-
216
- def test_case_end
217
- return unless parent_tag == "start-test-case"
218
- name = @values["name"]
219
- @test_case = Class.new(TestCase) do
220
- define_method(:name) do
221
- name
222
- end
223
- end
224
- end
225
-
226
- def test_end
227
- return unless parent_tag == "complete-test"
228
- name = @values["name"]
229
- n_pass_assertions = @n_pass_assertions
230
- result = @result
231
- @test_case.module_eval do
232
- test
233
- define_method(name) do
234
- n_pass_assertions.times do
235
- add_assertion
236
- end
237
- case result["status"]
238
- when "omission"
239
- add_omission(Omission.new(name,
240
- result["backtrace"],
241
- result["detail"]))
242
- end
243
- end
244
- end
245
- end
246
- end
247
- end
248
- end
249
- end
250
- end