jordi-xml_struct 0.2.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +152 -0
- data/WHATSNEW +10 -0
- data/lib/xml_struct/adapters/hpricot.rb +47 -0
- data/lib/xml_struct/adapters/rexml.rb +34 -0
- data/lib/xml_struct/array_notation.rb +44 -0
- data/lib/xml_struct/blankish_slate.rb +1 -1
- data/lib/xml_struct/collection_proxy.rb +7 -3
- data/lib/xml_struct/default_adapter.rb +15 -0
- data/lib/xml_struct/method_missing_dispatchers.rb +43 -0
- data/lib/xml_struct/string.rb +6 -2
- data/lib/xml_struct.rb +31 -52
- data/xml_struct.gemspec +38 -0
- metadata +17 -49
- data/README.markdown +0 -151
- data/Rakefile +0 -36
- data/lib/xml_struct/common_behaviours.rb +0 -53
- data/test/samples/lorem.xml +0 -63
- data/test/samples/recipe.xml +0 -16
- data/test/samples/weird_characters.xml +0 -2
- data/test/test_helper.rb +0 -39
- data/test/vendor/test-spec/README +0 -378
- data/test/vendor/test-spec/ROADMAP +0 -1
- data/test/vendor/test-spec/Rakefile +0 -146
- data/test/vendor/test-spec/SPECS +0 -161
- data/test/vendor/test-spec/TODO +0 -2
- data/test/vendor/test-spec/bin/specrb +0 -107
- data/test/vendor/test-spec/examples/stack.rb +0 -38
- data/test/vendor/test-spec/examples/stack_spec.rb +0 -119
- data/test/vendor/test-spec/lib/test/spec/dox.rb +0 -148
- data/test/vendor/test-spec/lib/test/spec/rdox.rb +0 -25
- data/test/vendor/test-spec/lib/test/spec/should-output.rb +0 -49
- data/test/vendor/test-spec/lib/test/spec/version.rb +0 -8
- data/test/vendor/test-spec/lib/test/spec.rb +0 -660
- data/test/vendor/test-spec/test/spec_dox.rb +0 -39
- data/test/vendor/test-spec/test/spec_flexmock.rb +0 -209
- data/test/vendor/test-spec/test/spec_mocha.rb +0 -104
- data/test/vendor/test-spec/test/spec_nestedcontexts.rb +0 -26
- data/test/vendor/test-spec/test/spec_new_style.rb +0 -80
- data/test/vendor/test-spec/test/spec_should-output.rb +0 -26
- data/test/vendor/test-spec/test/spec_testspec.rb +0 -699
- data/test/vendor/test-spec/test/spec_testspec_order.rb +0 -26
- data/test/vendor/test-spec/test/test_testunit.rb +0 -22
- data/test/xml_struct_test.rb +0 -185
data/test/vendor/test-spec/SPECS
DELETED
@@ -1,161 +0,0 @@
|
|
1
|
-
|
2
|
-
== TestUnit
|
3
|
-
* still works on its own
|
4
|
-
* supports should good enough
|
5
|
-
* works inside test/spec
|
6
|
-
|
7
|
-
== CustomTestUnitSubclass
|
8
|
-
* truth
|
9
|
-
|
10
|
-
== test/spec
|
11
|
-
* has should.satisfy
|
12
|
-
* has should.equal
|
13
|
-
* has should.raise
|
14
|
-
* has should.raise with a block
|
15
|
-
* should.raise should return the exception
|
16
|
-
* has should.be.an.instance_of
|
17
|
-
* has should.be.nil
|
18
|
-
* has should.include
|
19
|
-
* has should.be.a.kind_of
|
20
|
-
* has should.match
|
21
|
-
* has should.be
|
22
|
-
* has should.not.raise
|
23
|
-
* has should.not.satisfy
|
24
|
-
* has should.not.be
|
25
|
-
* has should.not.equal
|
26
|
-
* has should.not.match
|
27
|
-
* has should.throw
|
28
|
-
* has should.not.throw
|
29
|
-
* has should.respond_to
|
30
|
-
* has should.be_close
|
31
|
-
* multiple negation works
|
32
|
-
* has should.<predicate>
|
33
|
-
* has should.<predicate>?
|
34
|
-
* has should <operator> (>, >=, <, <=, ===)
|
35
|
-
* is robust against careless users
|
36
|
-
* should detect warnings
|
37
|
-
* should message/blame faults
|
38
|
-
* should allow for custom shoulds
|
39
|
-
* disabled specification (disabled)
|
40
|
-
* empty specification (disabled)
|
41
|
-
=== more disabled
|
42
|
-
* this is intentional (disabled)
|
43
|
-
* an empty specification (empty)
|
44
|
-
==== even more disabled
|
45
|
-
* we can cut out (disabled)
|
46
|
-
* entire contexts, now (disabled)
|
47
|
-
|
48
|
-
== setup/teardown
|
49
|
-
* run in the right order
|
50
|
-
|
51
|
-
== before all
|
52
|
-
* runs parent before all
|
53
|
-
|
54
|
-
== nested teardown
|
55
|
-
=== nested
|
56
|
-
* should call local teardown then parent teardown
|
57
|
-
|
58
|
-
== before all
|
59
|
-
=== nested
|
60
|
-
* should call parent then local
|
61
|
-
|
62
|
-
== after all
|
63
|
-
=== after nested
|
64
|
-
* should call local then parent
|
65
|
-
|
66
|
-
== contexts
|
67
|
-
* are defined in class scope
|
68
|
-
* can include modules
|
69
|
-
|
70
|
-
== contexts with subclasses
|
71
|
-
* use the supplied class as the superclass
|
72
|
-
* truth
|
73
|
-
|
74
|
-
== xcontexts with subclasses
|
75
|
-
* work great! (disabled)
|
76
|
-
* truth
|
77
|
-
|
78
|
-
== Shared contexts
|
79
|
-
* can be included several times
|
80
|
-
* can include other shared contexts
|
81
|
-
* can be included several times
|
82
|
-
* can include other shared contexts
|
83
|
-
* can be nested
|
84
|
-
* can access data
|
85
|
-
* should raise when the context cannot be found
|
86
|
-
|
87
|
-
== SpecDox
|
88
|
-
* can unmangle Test::Unit names correctly
|
89
|
-
* can unmangle Test::Spec names correctly
|
90
|
-
* has sensible fallbacks
|
91
|
-
|
92
|
-
== flexmock
|
93
|
-
* should receive and return
|
94
|
-
* should receive without a block
|
95
|
-
* should receive and return with a block
|
96
|
-
* should have a return value
|
97
|
-
* should handle missing methods
|
98
|
-
* should ignore missing methods
|
99
|
-
* should count correctly
|
100
|
-
* should raise on bad counts
|
101
|
-
* should handle undetermined counts
|
102
|
-
* should handle zero counts
|
103
|
-
* should have file IO with use
|
104
|
-
* should have use
|
105
|
-
* should handle failures during use
|
106
|
-
* should deal with sequential values
|
107
|
-
* respond_to? should return false for non handled methods
|
108
|
-
* respond_to? should return true for explicit methods
|
109
|
-
* respond_to? should return true for missing_methods when should_ignore_missing
|
110
|
-
* should raise error on unknown method proc
|
111
|
-
* should return callable proc on method
|
112
|
-
* should return do nothing proc for missing methods
|
113
|
-
* works with test/spec
|
114
|
-
|
115
|
-
== mocha
|
116
|
-
* works with test/spec
|
117
|
-
* works with test/spec and Enterprise example
|
118
|
-
|
119
|
-
== stubba
|
120
|
-
* works with test/spec and instance method stubbing
|
121
|
-
* works with test/spec and class method stubbing
|
122
|
-
* works with test/spec and global instance method stubbing
|
123
|
-
|
124
|
-
== Outer context
|
125
|
-
=== Inner context
|
126
|
-
* is nested (empty)
|
127
|
-
* has multiple empty specifications (empty)
|
128
|
-
=== Second Inner context
|
129
|
-
* is indented properly (empty)
|
130
|
-
* still runs in order of definition (empty)
|
131
|
-
==== Inmost context
|
132
|
-
* works too! (empty)
|
133
|
-
* whoo! (empty)
|
134
|
-
|
135
|
-
== A new-style description
|
136
|
-
* should run before-clauses
|
137
|
-
* should behave like context/specify
|
138
|
-
* this is disabled (disabled)
|
139
|
-
* should raise on unimplement{ed,able} before/after
|
140
|
-
* should work as well with shared descriptions
|
141
|
-
=== when nested
|
142
|
-
* should work
|
143
|
-
|
144
|
-
== An disabled description
|
145
|
-
* should not be run (disabled)
|
146
|
-
|
147
|
-
== should.output
|
148
|
-
* works for print
|
149
|
-
* works for puts
|
150
|
-
* works with readline
|
151
|
-
|
152
|
-
== Context First
|
153
|
-
* runs before Second
|
154
|
-
|
155
|
-
== Context Second
|
156
|
-
* runs before Last
|
157
|
-
|
158
|
-
== Context Last
|
159
|
-
* runs last
|
160
|
-
|
161
|
-
104 specifications, 8 disabled, 7 empty (636 requirements), 0 failures
|
data/test/vendor/test-spec/TODO
DELETED
@@ -1,107 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# -*- ruby -*-
|
3
|
-
|
4
|
-
require 'optparse'
|
5
|
-
|
6
|
-
testrbargv = []
|
7
|
-
automatic = false
|
8
|
-
|
9
|
-
opts = OptionParser.new("", 24, ' ') { |opts|
|
10
|
-
opts.banner = "Usage: specrb [options] [files | -a] [-- untouched arguments]"
|
11
|
-
|
12
|
-
opts.separator ""
|
13
|
-
opts.separator "Ruby options:"
|
14
|
-
|
15
|
-
lineno = 1
|
16
|
-
opts.on("-e", "--eval LINE", "evaluate a LINE of code") { |line|
|
17
|
-
eval line, TOPLEVEL_BINDING, "-e", lineno
|
18
|
-
lineno += 1
|
19
|
-
}
|
20
|
-
|
21
|
-
opts.on("-d", "--debug", "set debugging flags (set $DEBUG to true)") {
|
22
|
-
$DEBUG = true
|
23
|
-
}
|
24
|
-
opts.on("-w", "--warn", "turn warnings on for your script") {
|
25
|
-
$-w = true
|
26
|
-
}
|
27
|
-
|
28
|
-
opts.on("-I", "--include PATH",
|
29
|
-
"specify $LOAD_PATH (may be used more than once)") { |path|
|
30
|
-
$LOAD_PATH.unshift(*path.split(":"))
|
31
|
-
}
|
32
|
-
|
33
|
-
opts.on("-r", "--require LIBRARY",
|
34
|
-
"require the library, before executing your script") { |library|
|
35
|
-
require library
|
36
|
-
}
|
37
|
-
|
38
|
-
opts.separator ""
|
39
|
-
opts.separator "test/spec options:"
|
40
|
-
|
41
|
-
opts.on("-s", "--specdox", "do AgileDox-like output") {
|
42
|
-
testrbargv << "--runner=specdox"
|
43
|
-
}
|
44
|
-
opts.on("--rdox", "do AgileDox-like output with RDoc formatting") {
|
45
|
-
testrbargv << "--runner=rdox"
|
46
|
-
}
|
47
|
-
|
48
|
-
opts.on("-a", "--automatic", "gather tests from ./test/, include ./lib/") {
|
49
|
-
$LOAD_PATH.unshift "lib" if File.directory? "lib"
|
50
|
-
automatic = true
|
51
|
-
}
|
52
|
-
|
53
|
-
opts.separator ""
|
54
|
-
opts.separator "test/unit options:"
|
55
|
-
|
56
|
-
opts.on('-n', '--name NAME', String,
|
57
|
-
"runs tests matching regexp NAME") { |n|
|
58
|
-
testrbargv << "-n" << "/#{n}/"
|
59
|
-
}
|
60
|
-
|
61
|
-
opts.on('-t', '--testcase TESTCASE', String,
|
62
|
-
"runs tests in TestCases matching regexp TESTCASE") { |t|
|
63
|
-
testrbargv << "-t" << "/#{t}/"
|
64
|
-
}
|
65
|
-
|
66
|
-
opts.separator ""
|
67
|
-
opts.separator "Common options:"
|
68
|
-
|
69
|
-
opts.on_tail("-h", "--help", "Show this message") do
|
70
|
-
puts opts
|
71
|
-
exit
|
72
|
-
end
|
73
|
-
|
74
|
-
opts.on_tail("--version", "Show version") do
|
75
|
-
require 'test/spec'
|
76
|
-
puts "specrb #{Test::Spec::VERSION}"
|
77
|
-
exit
|
78
|
-
end
|
79
|
-
|
80
|
-
opts.parse! ARGV
|
81
|
-
}
|
82
|
-
|
83
|
-
files = ARGV
|
84
|
-
|
85
|
-
if automatic
|
86
|
-
files.concat Dir["test/test_*.rb"]
|
87
|
-
files.concat Dir["test/spec_*.rb"]
|
88
|
-
files.concat Dir["spec/spec_*.rb"]
|
89
|
-
end
|
90
|
-
|
91
|
-
if files.empty?
|
92
|
-
puts opts.banner
|
93
|
-
exit 1
|
94
|
-
end
|
95
|
-
|
96
|
-
argv = testrbargv + files
|
97
|
-
# Should use -- to separate them *but* there's a bug in
|
98
|
-
# Test::Unit::AutoRunner#process_args: arguments after -- are ignored.
|
99
|
-
# (You could also argue that it's a bug in optparse.rb).
|
100
|
-
|
101
|
-
require 'test/spec'
|
102
|
-
|
103
|
-
Test::Unit.run = false
|
104
|
-
runner = Test::Unit::AutoRunner.new true
|
105
|
-
runner.process_args(argv) ||
|
106
|
-
abort("internal error calling Test::Unit, please report a bug")
|
107
|
-
exit runner.run
|
@@ -1,38 +0,0 @@
|
|
1
|
-
# Copied without code changes from RSpec.
|
2
|
-
|
3
|
-
class StackUnderflowError < RuntimeError
|
4
|
-
end
|
5
|
-
|
6
|
-
class StackOverflowError < RuntimeError
|
7
|
-
end
|
8
|
-
|
9
|
-
class Stack
|
10
|
-
|
11
|
-
def initialize
|
12
|
-
@items = []
|
13
|
-
end
|
14
|
-
|
15
|
-
def push object
|
16
|
-
raise StackOverflowError if @items.length == 10
|
17
|
-
@items.push object
|
18
|
-
end
|
19
|
-
|
20
|
-
def pop
|
21
|
-
raise StackUnderflowError if @items.empty?
|
22
|
-
@items.delete @items.last
|
23
|
-
end
|
24
|
-
|
25
|
-
def peek
|
26
|
-
raise StackUnderflowError if @items.empty?
|
27
|
-
@items.last
|
28
|
-
end
|
29
|
-
|
30
|
-
def empty?
|
31
|
-
@items.empty?
|
32
|
-
end
|
33
|
-
|
34
|
-
def full?
|
35
|
-
@items.length == 10
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
@@ -1,119 +0,0 @@
|
|
1
|
-
# Copied with minor code changes (should_xxx -> should.xxx) from RSpec.
|
2
|
-
|
3
|
-
require File.dirname(__FILE__) + '/../lib/test/spec'
|
4
|
-
require File.dirname(__FILE__) + "/stack"
|
5
|
-
|
6
|
-
context "A stack (in general)" do
|
7
|
-
setup do
|
8
|
-
@stack = Stack.new
|
9
|
-
["a","b","c"].each { |x| @stack.push x }
|
10
|
-
end
|
11
|
-
|
12
|
-
specify "should add to the top when sent 'push'" do
|
13
|
-
@stack.push "d"
|
14
|
-
@stack.peek.should.equal "d"
|
15
|
-
end
|
16
|
-
|
17
|
-
specify "should return the top item when sent 'peek'" do
|
18
|
-
@stack.peek.should.equal "c"
|
19
|
-
end
|
20
|
-
|
21
|
-
specify "should NOT remove the top item when sent 'peek'" do
|
22
|
-
@stack.peek.should.equal "c"
|
23
|
-
@stack.peek.should.equal "c"
|
24
|
-
end
|
25
|
-
|
26
|
-
specify "should return the top item when sent 'pop'" do
|
27
|
-
@stack.pop.should.equal "c"
|
28
|
-
end
|
29
|
-
|
30
|
-
specify "should remove the top item when sent 'pop'" do
|
31
|
-
@stack.pop.should.equal "c"
|
32
|
-
@stack.pop.should.equal "b"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context "An empty stack" do
|
37
|
-
setup do
|
38
|
-
@stack = Stack.new
|
39
|
-
end
|
40
|
-
|
41
|
-
specify "should be empty" do
|
42
|
-
@stack.should.be.empty
|
43
|
-
end
|
44
|
-
|
45
|
-
specify "should no longer be empty after 'push'" do
|
46
|
-
@stack.push "anything"
|
47
|
-
@stack.should.not.be.empty
|
48
|
-
end
|
49
|
-
|
50
|
-
specify "should complain when sent 'peek'" do
|
51
|
-
lambda { @stack.peek }.should.raise StackUnderflowError
|
52
|
-
end
|
53
|
-
|
54
|
-
specify "should complain when sent 'pop'" do
|
55
|
-
lambda { @stack.pop }.should.raise StackUnderflowError
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
context "An almost empty stack (with one item)" do
|
60
|
-
setup do
|
61
|
-
@stack = Stack.new
|
62
|
-
@stack.push 3
|
63
|
-
end
|
64
|
-
|
65
|
-
specify "should not be empty" do
|
66
|
-
@stack.should.not.be.empty
|
67
|
-
end
|
68
|
-
|
69
|
-
specify "should remain not empty after 'peek'" do
|
70
|
-
@stack.peek
|
71
|
-
@stack.should.not.be.empty
|
72
|
-
end
|
73
|
-
|
74
|
-
specify "should become empty after 'pop'" do
|
75
|
-
@stack.pop
|
76
|
-
@stack.should.be.empty
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
context "An almost full stack (with one item less than capacity)" do
|
81
|
-
setup do
|
82
|
-
@stack = Stack.new
|
83
|
-
(1..9).each { |i| @stack.push i }
|
84
|
-
end
|
85
|
-
|
86
|
-
specify "should not be full" do
|
87
|
-
@stack.should.not.be.full
|
88
|
-
end
|
89
|
-
|
90
|
-
specify "should become full when sent 'push'" do
|
91
|
-
@stack.push Object.new
|
92
|
-
@stack.should.be.full
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
context "A full stack" do
|
97
|
-
setup do
|
98
|
-
@stack = Stack.new
|
99
|
-
(1..10).each { |i| @stack.push i }
|
100
|
-
end
|
101
|
-
|
102
|
-
specify "should be full" do
|
103
|
-
@stack.should.be.full
|
104
|
-
end
|
105
|
-
|
106
|
-
specify "should remain full after 'peek'" do
|
107
|
-
@stack.peek
|
108
|
-
@stack.should.be.full
|
109
|
-
end
|
110
|
-
|
111
|
-
specify "should no longer be full after 'pop'" do
|
112
|
-
@stack.pop
|
113
|
-
@stack.should.not.be.full
|
114
|
-
end
|
115
|
-
|
116
|
-
specify "should complain on 'push'" do
|
117
|
-
lambda { @stack.push Object.new }.should.raise StackOverflowError
|
118
|
-
end
|
119
|
-
end
|
@@ -1,148 +0,0 @@
|
|
1
|
-
require 'test/unit/ui/console/testrunner'
|
2
|
-
|
3
|
-
module Test::Unit::UI # :nodoc:
|
4
|
-
module SpecDox # :nodoc:
|
5
|
-
class TestRunner < Test::Unit::UI::Console::TestRunner
|
6
|
-
protected
|
7
|
-
def setup_mediator
|
8
|
-
@mediator = create_mediator(@suite)
|
9
|
-
end
|
10
|
-
|
11
|
-
def add_fault(fault)
|
12
|
-
if fault.kind_of? Test::Spec::Disabled
|
13
|
-
@disabled += 1
|
14
|
-
output_no_nl " (disabled)"
|
15
|
-
elsif fault.kind_of? Test::Spec::Empty
|
16
|
-
@empty += 1
|
17
|
-
output_no_nl " (empty)"
|
18
|
-
else
|
19
|
-
@faults << fault
|
20
|
-
word = fault.class.name[/(.*::)?(.*)/, 2].upcase
|
21
|
-
output_no_nl " (#{word} - #{@faults.size})"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def started(result)
|
26
|
-
@result = result
|
27
|
-
@context = nil
|
28
|
-
@contexts = []
|
29
|
-
@disabled = 0
|
30
|
-
@empty = 0
|
31
|
-
indent 0
|
32
|
-
end
|
33
|
-
|
34
|
-
def finished(elapsed_time)
|
35
|
-
nl
|
36
|
-
output "Finished in #{elapsed_time} seconds."
|
37
|
-
@faults.each_with_index do |fault, index|
|
38
|
-
nl
|
39
|
-
output("%3d) %s" % [index + 1, fault.long_display])
|
40
|
-
end
|
41
|
-
nl
|
42
|
-
output_result
|
43
|
-
end
|
44
|
-
|
45
|
-
def output_result
|
46
|
-
if @disabled > 0
|
47
|
-
disabled = ", #{@disabled} disabled"
|
48
|
-
else
|
49
|
-
disabled = ""
|
50
|
-
end
|
51
|
-
|
52
|
-
if @empty > 0
|
53
|
-
empty = ", #{@empty} empty"
|
54
|
-
else
|
55
|
-
empty = ""
|
56
|
-
end
|
57
|
-
|
58
|
-
r = ("%d specifications#{disabled}#{empty} " +
|
59
|
-
"(%d requirements), %d failures") % [
|
60
|
-
@result.run_count, @result.assertion_count, @result.failure_count]
|
61
|
-
r << ", #{@result.error_count} errors" if @result.error_count > 0
|
62
|
-
output r
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_started(name)
|
66
|
-
return if special_test? name
|
67
|
-
|
68
|
-
contextname, @specname = unmangle name
|
69
|
-
return if contextname.nil? || @specname.nil?
|
70
|
-
|
71
|
-
if @context != contextname
|
72
|
-
@context = contextname
|
73
|
-
|
74
|
-
@old_contexts = @contexts
|
75
|
-
@contexts = @context.split("\t")
|
76
|
-
|
77
|
-
common = 0
|
78
|
-
@contexts.zip(@old_contexts) { |a, b|
|
79
|
-
break if a != b
|
80
|
-
common += 1
|
81
|
-
}
|
82
|
-
|
83
|
-
nl if common == 0
|
84
|
-
|
85
|
-
@contexts[common..-1].each_with_index { |head, i|
|
86
|
-
indent common + i
|
87
|
-
output_heading head
|
88
|
-
}
|
89
|
-
end
|
90
|
-
|
91
|
-
@assertions = @result.assertion_count
|
92
|
-
@prevdisabled = @disabled
|
93
|
-
output_item @specname
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_finished(name)
|
97
|
-
return if special_test? name
|
98
|
-
|
99
|
-
# Did any assertion run?
|
100
|
-
if @assertions == @result.assertion_count && @prevdisabled == @disabled
|
101
|
-
add_fault Test::Spec::Empty.new(@specname)
|
102
|
-
end
|
103
|
-
|
104
|
-
# Don't let empty contexts clutter up the output.
|
105
|
-
nl unless name =~ /\Adefault_test\(/
|
106
|
-
end
|
107
|
-
|
108
|
-
def output_no_nl(something, level=NORMAL)
|
109
|
-
@io.write(something) if (output?(level))
|
110
|
-
@io.flush
|
111
|
-
end
|
112
|
-
|
113
|
-
def output_item(item)
|
114
|
-
output_no_nl "#{@prefix}- #{item}"
|
115
|
-
end
|
116
|
-
|
117
|
-
def output_heading(heading)
|
118
|
-
output "#{@prefix}#{heading}"
|
119
|
-
end
|
120
|
-
|
121
|
-
def unmangle(name)
|
122
|
-
if name =~ /\Atest_spec \{(.*?)\} \d+ \[(.*)\]/
|
123
|
-
contextname = $1
|
124
|
-
specname = $2
|
125
|
-
elsif name =~ /test_(.*?)\((.*)\)$/
|
126
|
-
specname = $1
|
127
|
-
contextname = $2
|
128
|
-
|
129
|
-
contextname.gsub!(/^Test\B|\BTest$/, '')
|
130
|
-
specname.gsub!(/_/, ' ')
|
131
|
-
else
|
132
|
-
contextname = specname = nil
|
133
|
-
end
|
134
|
-
|
135
|
-
[contextname, specname]
|
136
|
-
end
|
137
|
-
|
138
|
-
def indent(depth)
|
139
|
-
@indent = depth
|
140
|
-
@prefix = " " * depth
|
141
|
-
end
|
142
|
-
|
143
|
-
def special_test?(name)
|
144
|
-
name =~ /\Atest_spec \{.*?\} (-1 BEFORE|AFTER) ALL\(/
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|