sapphire 0.6.2 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,29 @@
1
+ module Sapphire
2
+ module DSL
3
+ module Scenarios
4
+ def Problematic(text)
5
+ Problematic.new text
6
+ end
7
+
8
+ class Problematic
9
+
10
+ attr_reader :text
11
+ attr_reader :and
12
+
13
+ def initialize(text)
14
+ @text = text
15
+ @and = []
16
+ end
17
+
18
+ def add_and(text, &block)
19
+ self.and << Then.new(text, &block)
20
+ end
21
+
22
+ def to_s
23
+ self.text
24
+ end
25
+
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,34 +1,36 @@
1
- class Background
2
- include Sapphire::Testing::Executable
3
-
4
- attr_reader :value
5
- attr_reader :text
6
- attr_reader :block
7
- attr_reader :parent
8
- attr_reader :results
9
- attr_reader :and
10
-
11
- def initialize(parent, pre, text, &block)
12
- @block = block
13
- @value = text
14
- @text = pre + text.to_s
15
- @parent = parent
16
- @results = []
17
- @and = []
18
- end
19
-
20
- def AddResult(result)
21
- result.item = self
22
- @results << result
23
- self.parent.result.AddChild(result)
24
- end
25
-
26
- def add_and(pre, text, &block)
27
- if(self.value.is_a? Pending)
28
- self.and << And.new(self, Pending.new(pre + text), &block)
29
- else
30
- self.and << And.new(self, pre + text, &block)
31
- end
32
- end
33
-
1
+ class Background
2
+ include Sapphire::Testing::Executable
3
+
4
+ attr_reader :value
5
+ attr_reader :text
6
+ attr_reader :block
7
+ attr_reader :parent
8
+ attr_reader :results
9
+ attr_reader :and
10
+
11
+ def initialize(parent, pre, text, &block)
12
+ @block = block
13
+ @value = text
14
+ @text = pre + text.to_s
15
+ @parent = parent
16
+ @results = []
17
+ @and = []
18
+ end
19
+
20
+ def AddResult(result)
21
+ result.item = self
22
+ @results << result
23
+ self.parent.result.AddChild(result)
24
+ end
25
+
26
+ def add_and(pre, text, &block)
27
+ if(self.value.is_a? Pending)
28
+ self.and << And.new(self, Pending.new(pre + text), &block)
29
+ elsif(self.value.is_a? Problematic)
30
+ self.and << And.new(self, Problematic.new(pre + text), &block)
31
+ else
32
+ self.and << And.new(self, pre + text, &block)
33
+ end
34
+ end
35
+
34
36
  end
@@ -1,34 +1,36 @@
1
- class Finally
2
- include Sapphire::Testing::Executable
3
-
4
- attr_reader :value
5
- attr_reader :block
6
- attr_reader :text
7
- attr_reader :and
8
- attr_reader :parent
9
- attr_reader :results
10
-
11
- def initialize(parent, text, &block)
12
- @value = text
13
- @text = text.to_s
14
- @block = block
15
- @and = []
16
- @parent = parent
17
- @results = []
18
- end
19
-
20
- def add_and(pre, text, &block)
21
- if(self.value.is_a? Pending)
22
- self.and << And.new(self, Pending.new(pre + text), &block)
23
- else
24
- self.and << And.new(self, pre + text, &block)
25
- end
26
- end
27
-
28
- def AddResult(result)
29
- result.item = self
30
- @results << result
31
- self.parent.AddResult(result)
32
- end
33
-
1
+ class Finally
2
+ include Sapphire::Testing::Executable
3
+
4
+ attr_reader :value
5
+ attr_reader :block
6
+ attr_reader :text
7
+ attr_reader :and
8
+ attr_reader :parent
9
+ attr_reader :results
10
+
11
+ def initialize(parent, text, &block)
12
+ @value = text
13
+ @text = text.to_s
14
+ @block = block
15
+ @and = []
16
+ @parent = parent
17
+ @results = []
18
+ end
19
+
20
+ def add_and(pre, text, &block)
21
+ if(self.value.is_a? Pending)
22
+ self.and << And.new(self, Pending.new(pre + text), &block)
23
+ elsif(self.value.is_a? Problematic)
24
+ self.and << And.new(self, Problematic.new(pre + text), &block)
25
+ else
26
+ self.and << And.new(self, pre + text, &block)
27
+ end
28
+ end
29
+
30
+ def AddResult(result)
31
+ result.item = self
32
+ @results << result
33
+ self.parent.AddResult(result)
34
+ end
35
+
34
36
  end
@@ -1,58 +1,64 @@
1
- class Given
2
- include Sapphire::Testing::Executable
3
-
4
- attr_reader :value
5
- attr_reader :text
6
- attr_reader :block
7
- attr_reader :finally
8
- attr_reader :when
9
- attr_reader :and
10
- attr_reader :parent
11
- attr_reader :results
12
-
13
- def initialize(parent, pre, text, &block)
14
- @value = text
15
- @text = pre + text.to_s
16
- @block = block
17
- @when = []
18
- @and = []
19
- @parent = parent
20
- @results = []
21
- end
22
-
23
- def add_when(pre, text, &block)
24
- if(self.value.is_a? Pending)
25
- @when << When.new(self, pre, Pending.new(text), &block)
26
- else
27
- x = When.new(self, pre, text, &block)
28
- @when << x
29
- end
30
- end
31
-
32
- def last_when()
33
- @when.last
34
- end
35
-
36
- def add_finally(finally)
37
- if(self.value.is_a? Pending)
38
- @finally = Finally.new(self, Pending.new(finally.text), &block)
39
- else
40
- @finally = finally
41
- end
42
- end
43
-
44
- def add_and(pre, text, &block)
45
- if(self.value.is_a? Pending)
46
- self.and << And.new(self, Pending.new(pre + text), &block)
47
- else
48
- self.and << And.new(self, pre + text, &block)
49
- end
50
- end
51
-
52
- def AddResult(result)
53
- result.item = self
54
- @results << result
55
- self.parent.result.AddChild(result)
56
- end
57
-
1
+ class Given
2
+ include Sapphire::Testing::Executable
3
+
4
+ attr_reader :value
5
+ attr_reader :text
6
+ attr_reader :block
7
+ attr_reader :finally
8
+ attr_reader :when
9
+ attr_reader :and
10
+ attr_reader :parent
11
+ attr_reader :results
12
+
13
+ def initialize(parent, pre, text, &block)
14
+ @value = text
15
+ @text = pre + text.to_s
16
+ @block = block
17
+ @when = []
18
+ @and = []
19
+ @parent = parent
20
+ @results = []
21
+ end
22
+
23
+ def add_when(pre, text, &block)
24
+ if(self.value.is_a? Pending)
25
+ @when << When.new(self, pre, Pending.new(text), &block)
26
+ elsif(self.value.is_a? Problematic)
27
+ @when << When.new(self, pre, Problematic.new(text), &block)
28
+ else
29
+ x = When.new(self, pre, text, &block)
30
+ @when << x
31
+ end
32
+ end
33
+
34
+ def last_when()
35
+ @when.last
36
+ end
37
+
38
+ def add_finally(finally)
39
+ if(self.value.is_a? Pending)
40
+ @finally = Finally.new(self, Pending.new(finally.text), &block)
41
+ elsif(self.value.is_a? Problematic)
42
+ @finally = Finally.new(self, Problematic.new(finally.text), &block)
43
+ else
44
+ @finally = finally
45
+ end
46
+ end
47
+
48
+ def add_and(pre, text, &block)
49
+ if(self.value.is_a? Pending)
50
+ self.and << And.new(self, Pending.new(pre + text), &block)
51
+ elsif(self.value.is_a? Problematic)
52
+ self.and << And.new(self, Problematic.new(pre + text), &block)
53
+ else
54
+ self.and << And.new(self, pre + text, &block)
55
+ end
56
+ end
57
+
58
+ def AddResult(result)
59
+ result.item = self
60
+ @results << result
61
+ self.parent.result.AddChild(result)
62
+ end
63
+
58
64
  end
@@ -1,53 +1,57 @@
1
- module Sapphire
2
- module DSL
3
- module Scenarios
4
- class Scenario
5
- include Sapphire::Testing::TestRunnerAdapter
6
-
7
- attr_reader :block
8
- attr_reader :value
9
- attr_reader :text
10
- attr_reader :givens
11
- attr_reader :backgrounds
12
- attr_reader :result
13
- attr_accessor :file_name
14
-
15
- def initialize(text, &block)
16
- @value = text
17
- @text = text.to_s
18
- @block = block
19
- @givens = []
20
- @backgrounds = []
21
- @result = Testing::ScenarioResult.new(text)
22
- @file_name = ""
23
- end
24
-
25
- def add_given(given)
26
- if(self.value.is_a? Pending)
27
- @givens << Given.new(self, "", Pending.new(given.text), &block)
28
- else
29
- @givens << given
30
- end
31
- end
32
-
33
- def last_given
34
- @givens.last
35
- end
36
-
37
- def add_background(background)
38
- if(self.value.is_a? Pending)
39
- @backgrounds << Background.new(self, "", Pending.new(background.text), &block)
40
- else
41
- @backgrounds << background
42
- end
43
- end
44
-
45
- def last_background
46
- @backgrounds.last
47
- end
48
-
49
- end
50
- end
51
- end
52
- end
53
-
1
+ module Sapphire
2
+ module DSL
3
+ module Scenarios
4
+ class Scenario
5
+ include Sapphire::Testing::TestRunnerAdapter
6
+
7
+ attr_reader :block
8
+ attr_reader :value
9
+ attr_reader :text
10
+ attr_reader :givens
11
+ attr_reader :backgrounds
12
+ attr_reader :result
13
+ attr_accessor :file_name
14
+
15
+ def initialize(text, &block)
16
+ @value = text
17
+ @text = text.to_s
18
+ @block = block
19
+ @givens = []
20
+ @backgrounds = []
21
+ @result = Testing::ScenarioResult.new(text)
22
+ @file_name = ""
23
+ end
24
+
25
+ def add_given(given)
26
+ if(self.value.is_a? Pending)
27
+ @givens << Given.new(self, "", Pending.new(given.text), &block)
28
+ elsif(self.value.is_a? Problematic)
29
+ @givens << Given.new(self, "", Problematic.new(given.text), &block)
30
+ else
31
+ @givens << given
32
+ end
33
+ end
34
+
35
+ def last_given
36
+ @givens.last
37
+ end
38
+
39
+ def add_background(background)
40
+ if(self.value.is_a? Pending)
41
+ @backgrounds << Background.new(self, "", Pending.new(background.text), &block)
42
+ elsif(self.value.is_a? Problematic)
43
+ @backgrounds << Background.new(self, "", Problematic.new(background.text), &block)
44
+ else
45
+ @backgrounds << background
46
+ end
47
+ end
48
+
49
+ def last_background
50
+ @backgrounds.last
51
+ end
52
+
53
+ end
54
+ end
55
+ end
56
+ end
57
+
@@ -1,35 +1,37 @@
1
- class Then
2
- include Sapphire::Testing::Executable
3
-
4
- attr_reader :value
5
- attr_accessor :text
6
- attr_reader :block
7
- attr_reader :and
8
- attr_reader :parent
9
- attr_reader :results
10
-
11
- def initialize(parent, pre, text, &block)
12
- @block = block
13
- @value = text
14
- @text = pre + text.to_s
15
- @and = []
16
- @parent = parent
17
- @results = []
18
- end
19
-
20
- def add_and(pre, text, &block)
21
- if(!self.value.instance_of? Pending)
22
- x = And.new(self, text, &block)
23
- self.and << x
24
- else
25
- self.and << And.new(self, Pending.new(pre + text), &block)
26
- end
27
- end
28
-
29
- def AddResult(result)
30
- result.item = self
31
- @results << result
32
- self.parent.results.last.AddChild(result)
33
- end
34
-
1
+ class Then
2
+ include Sapphire::Testing::Executable
3
+
4
+ attr_reader :value
5
+ attr_accessor :text
6
+ attr_reader :block
7
+ attr_reader :and
8
+ attr_reader :parent
9
+ attr_reader :results
10
+
11
+ def initialize(parent, pre, text, &block)
12
+ @block = block
13
+ @value = text
14
+ @text = pre + text.to_s
15
+ @and = []
16
+ @parent = parent
17
+ @results = []
18
+ end
19
+
20
+ def add_and(pre, text, &block)
21
+ if(self.value.instance_of? Pending)
22
+ self.and << And.new(self, Pending.new(pre + text), &block)
23
+ elsif(self.value.instance_of? Problematic)
24
+ self.and << And.new(self, Problematic.new(pre + text), &block)
25
+ else
26
+ x = And.new(self, text, &block)
27
+ self.and << x
28
+ end
29
+ end
30
+
31
+ def AddResult(result)
32
+ result.item = self
33
+ @results << result
34
+ self.parent.results.last.AddChild(result)
35
+ end
36
+
35
37
  end
@@ -1,48 +1,52 @@
1
- class When
2
- include Sapphire::Testing::Executable
3
-
4
- attr_reader :value
5
- attr_accessor :text
6
- attr_reader :block
7
- attr_reader :then
8
- attr_reader :and
9
- attr_reader :parent
10
- attr_reader :results
11
-
12
- def initialize(parent, pre, text, &block)
13
- @block = block
14
- @value = text
15
- @text = pre + text.to_s
16
- @then = []
17
- @and = []
18
- @parent = parent
19
- @results = []
20
- end
21
-
22
- def add_then(pre, text, &block)
23
- if(self.value.is_a? Pending)
24
- @then << Then.new(self, pre, Pending.new(text), &block)
25
- else
26
- @then << Then.new(self, pre, text, &block)
27
- end
28
- end
29
-
30
- def add_and(pre, text, &block)
31
- if(self.value.is_a? Pending)
32
- self.and << And.new(self, Pending.new(pre + text), &block)
33
- else
34
- self.and << And.new(self, pre + text, &block)
35
- end
36
- end
37
-
38
- def last_then
39
- @then.last
40
- end
41
-
42
- def AddResult(result)
43
- result.item = self
44
- @results << result
45
- self.parent.results.last.AddChild(result)
46
- end
47
-
1
+ class When
2
+ include Sapphire::Testing::Executable
3
+
4
+ attr_reader :value
5
+ attr_accessor :text
6
+ attr_reader :block
7
+ attr_reader :then
8
+ attr_reader :and
9
+ attr_reader :parent
10
+ attr_reader :results
11
+
12
+ def initialize(parent, pre, text, &block)
13
+ @block = block
14
+ @value = text
15
+ @text = pre + text.to_s
16
+ @then = []
17
+ @and = []
18
+ @parent = parent
19
+ @results = []
20
+ end
21
+
22
+ def add_then(pre, text, &block)
23
+ if(self.value.is_a? Pending)
24
+ @then << Then.new(self, pre, Pending.new(text), &block)
25
+ elsif(self.value.is_a? Problematic)
26
+ @then << Then.new(self, pre, Problematic.new(text), &block)
27
+ else
28
+ @then << Then.new(self, pre, text, &block)
29
+ end
30
+ end
31
+
32
+ def add_and(pre, text, &block)
33
+ if(self.value.is_a? Pending)
34
+ self.and << And.new(self, Pending.new(pre + text), &block)
35
+ elsif(self.value.is_a? Problematic)
36
+ self.and << And.new(self, Problematic.new(pre + text), &block)
37
+ else
38
+ self.and << And.new(self, pre + text, &block)
39
+ end
40
+ end
41
+
42
+ def last_then
43
+ @then.last
44
+ end
45
+
46
+ def AddResult(result)
47
+ result.item = self
48
+ @results << result
49
+ self.parent.results.last.AddChild(result)
50
+ end
51
+
48
52
  end
@@ -150,6 +150,11 @@ module Sapphire
150
150
  log(@message_factory.create_suite_finished("Finally")) if test.item.is_a? Finally
151
151
  end
152
152
 
153
+ def TestProblematic(test)
154
+ log(@message_factory.create_test_ignored(test.text, "Problematic"))
155
+ log(@message_factory.create_suite_finished("Finally")) if test.item.is_a? Finally
156
+ end
157
+
153
158
  def TestingComplete()
154
159
 
155
160
  end
@@ -7,6 +7,7 @@ module Sapphire
7
7
  @passing_count = 0
8
8
  @failing_count = 0
9
9
  @pending_count = 0
10
+ @problematic_count = 0
10
11
  @test_count = 0
11
12
  @output = $stdout
12
13
  end
@@ -34,6 +35,10 @@ module Sapphire
34
35
  @output.puts result.text.colorize :yellow
35
36
  Indent(depth+1)
36
37
  @output.puts " ## Not Yet Implemented ##"
38
+ elsif result.type == 'problematic'
39
+ @output.puts result.text.colorize :orange
40
+ Indent(depth+1)
41
+ @output.puts " ## Problematic ##"
37
42
  else
38
43
  @output.puts result.text.colorize :red
39
44
  if result.messages.is_a? Array
@@ -82,6 +87,12 @@ module Sapphire
82
87
  @output.print "*".colorize :yellow
83
88
  end
84
89
 
90
+ def TestProblematic(test)
91
+ @problematic_count = @problematic_count + 1
92
+ Add test
93
+ @output.print "P".colorize :orange
94
+ end
95
+
85
96
  def Add(r)
86
97
  result_passes = r.type == "pass"
87
98
 
@@ -112,6 +123,7 @@ module Sapphire
112
123
  @output.puts "Passing: " + @passing_count.to_s.colorize(:green)
113
124
  @output.puts "Failing: " + @failing_count.to_s.colorize(:red)
114
125
  @output.puts "Pending: " + @pending_count.to_s.colorize(:yellow)
126
+ @output.puts "Problematic: " + @problematic_count.to_s.colorize(:orange)
115
127
  end
116
128
 
117
129
  def Output(result, depth)
@@ -1,36 +1,42 @@
1
- module Sapphire
2
- module Testing
3
- module Executable
4
- def execute()
5
- start = Time.now
6
- Report do |x| x.TestStarted(self) end
7
- begin
8
- if(self.value.is_a? Pending)
9
- result = ResultTree.new(self.text, TestResult.new("pending", self, "Pending", "", Time.now - start))
10
- self.AddResult(result)
11
- Report do |x| x.TestPending(result) end
12
- return
13
- end
14
- self.block.call
15
- result = ResultTree.new(self.text, TestResult.new("pass", self, "Success", "", Time.now - start))
16
- self.AddResult(result)
17
- Report do |x| x.TestPassed(result) end
18
- rescue => msg
19
- stack = msg.backtrace
20
- message = msg.messages if (msg.is_a? ExpectationException)
21
- message ||= msg.message
22
- result = ResultTree.new(self.text, TestResult.new("fail", self, message, stack, Time.now - start))
23
- self.AddResult(result)
24
- Report do |x| x.TestFailed(result) end
25
- end
26
- end
27
-
28
- def Report(&block)
29
- $reporters.each do |reporter|
30
- block.call reporter
31
- end
32
- end
33
- end
34
- end
35
- end
36
-
1
+ module Sapphire
2
+ module Testing
3
+ module Executable
4
+ def execute()
5
+ start = Time.now
6
+ Report do |x| x.TestStarted(self) end
7
+ begin
8
+ if(self.value.is_a? Pending)
9
+ result = ResultTree.new(self.text, TestResult.new("pending", self, "Pending", "", Time.now - start))
10
+ self.AddResult(result)
11
+ Report do |x| x.TestPending(result) end
12
+ return
13
+ end
14
+ if(self.value.is_a? Problematic)
15
+ result = ResultTree.new(self.text, TestResult.new("problematic", self, "Problematic", "", Time.now - start))
16
+ self.AddResult(result)
17
+ Report do |x| x.TestProblematic(result) end
18
+ return
19
+ end
20
+ self.block.call
21
+ result = ResultTree.new(self.text, TestResult.new("pass", self, "Success", "", Time.now - start))
22
+ self.AddResult(result)
23
+ Report do |x| x.TestPassed(result) end
24
+ rescue => msg
25
+ stack = msg.backtrace
26
+ message = msg.messages if (msg.is_a? ExpectationException)
27
+ message ||= msg.message
28
+ result = ResultTree.new(self.text, TestResult.new("fail", self, message, stack, Time.now - start))
29
+ self.AddResult(result)
30
+ Report do |x| x.TestFailed(result) end
31
+ end
32
+ end
33
+
34
+ def Report(&block)
35
+ $reporters.each do |reporter|
36
+ block.call reporter
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
@@ -8,6 +8,7 @@ module Sapphire
8
8
  @passing_count = 0
9
9
  @failing_count = 0
10
10
  @pending_count = 0
11
+ @problematic_count = 0
11
12
  @test_count = 0
12
13
  @output = $stdout
13
14
  end
@@ -58,11 +59,18 @@ module Sapphire
58
59
  @output.puts " <dd class=\"spec not_implemented\"><span class=\"not_implemented_spec_name\">#{test.text} (PENDING: ### Not Yet Implemented ###)</span></dd>"
59
60
  end
60
61
 
62
+ def TestProblematic(test)
63
+ @output.puts " <script type=\"text/javascript\">makeOrange('rspec-header');</script>" unless @header_red
64
+ @output.puts " <script type=\"text/javascript\">makeOrange('example_group_#{@example_group_number}');</script>" unless @example_group_red
65
+ @output.puts " <dd class=\"spec not_implemented\"><span class=\"not_implemented_spec_name\">#{test.text} (PROBLEMATIC: ### Problematic ###)</span></dd>"
66
+ end
67
+
61
68
  def TestingComplete
62
69
  @end = Time.now
63
70
 
64
71
  totals = "#{@test_count} example#{'s' unless @test_count == 1}, #{@failure_count} failure#{'s' unless @failure_count == 1}"
65
72
  totals << ", #{@pending_count} pending" if @pending_count > 0
73
+ totals << ", #{@problematic_count} problematic" if @problematic_count > 0
66
74
 
67
75
  @output.puts "<script type=\"text/javascript\">document.getElementById('duration').innerHTML = \"Finished in <strong>#{(@end - @start).round(2).to_s} seconds</strong>\";</script>"
68
76
  @output.puts "<script type=\"text/javascript\">document.getElementById('totals').innerHTML = \"#{totals}\";</script>"
@@ -6,6 +6,7 @@ module Sapphire
6
6
  attr_reader :passing_count
7
7
  attr_reader :failing_count
8
8
  attr_reader :pending_count
9
+ attr_reader :problematic_count
9
10
  attr_reader :time
10
11
 
11
12
  end
@@ -1,44 +1,45 @@
1
- module Sapphire
2
- module Testing
3
- class ResultTree
4
-
5
- attr_accessor :results
6
- attr_accessor :type
7
- attr_accessor :text
8
- attr_accessor :messages
9
- attr_accessor :stack
10
- attr_accessor :time
11
- attr_accessor :parent
12
- attr_accessor :item
13
-
14
- def initialize(text, result)
15
-
16
- @type = 'pass'
17
- @time = 0
18
-
19
- if(result != nil)
20
- self.type = result.type
21
- @iconCls = "accept" if result.type == "pass"
22
- @iconCls = "delete" if result.type == "fail"
23
- @iconCls = "error" if result.type == "pending"
24
- @time = result.execution_time
25
- @expanded = true
26
- @messages = result.messages
27
- @stack = result.stack
28
- end
29
- @text = text
30
- @results = []
31
- @leaf = true
32
-
33
- end
34
-
35
- def AddChild(node)
36
- node.parent = self
37
- @results << node
38
- @leaf = false
39
- end
40
-
41
- end
42
- end
43
- end
44
-
1
+ module Sapphire
2
+ module Testing
3
+ class ResultTree
4
+
5
+ attr_accessor :results
6
+ attr_accessor :type
7
+ attr_accessor :text
8
+ attr_accessor :messages
9
+ attr_accessor :stack
10
+ attr_accessor :time
11
+ attr_accessor :parent
12
+ attr_accessor :item
13
+
14
+ def initialize(text, result)
15
+
16
+ @type = 'pass'
17
+ @time = 0
18
+
19
+ if(result != nil)
20
+ self.type = result.type
21
+ @iconCls = "accept" if result.type == "pass"
22
+ @iconCls = "delete" if result.type == "fail"
23
+ @iconCls = "error" if result.type == "pending"
24
+ @iconCls = "error" if result.type == "problematic"
25
+ @time = result.execution_time
26
+ @expanded = true
27
+ @messages = result.messages
28
+ @stack = result.stack
29
+ end
30
+ @text = text
31
+ @results = []
32
+ @leaf = true
33
+
34
+ end
35
+
36
+ def AddChild(node)
37
+ node.parent = self
38
+ @results << node
39
+ @leaf = false
40
+ end
41
+
42
+ end
43
+ end
44
+ end
45
+
@@ -1,3 +1,3 @@
1
1
  module Sapphire
2
- VERSION = "0.6.2"
2
+ VERSION = "0.6.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sapphire
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-04 00:00:00.000000000Z
12
+ date: 2012-01-06 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: selenium-webdriver
16
- requirement: &10054932 !ruby/object:Gem::Requirement
16
+ requirement: &9944292 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *10054932
24
+ version_requirements: *9944292
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: colorize
27
- requirement: &10054680 !ruby/object:Gem::Requirement
27
+ requirement: &9944040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *10054680
35
+ version_requirements: *9944040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: Platform
38
- requirement: &10054428 !ruby/object:Gem::Requirement
38
+ requirement: &9943788 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *10054428
46
+ version_requirements: *9943788
47
47
  description: An automated web acceptance test framework for non-technical resources
48
48
  using selenium-wedriver.
49
49
  email:
@@ -124,6 +124,7 @@ files:
124
124
  - lib/sapphire/DSL/Scenarios/given.rb
125
125
  - lib/sapphire/DSL/Scenarios/Is.rb
126
126
  - lib/sapphire/DSL/Scenarios/Pending.rb
127
+ - lib/sapphire/DSL/Scenarios/Problematic.rb
127
128
  - lib/sapphire/DSL/Scenarios/runner.rb
128
129
  - lib/sapphire/DSL/Scenarios/scenario.rb
129
130
  - lib/sapphire/DSL/Scenarios/then.rb