greenpepper-ruby 0.0.1
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.
- data/bin/greenpepperize +71 -0
- data/bin/greenpepperrails +33 -0
- data/bin/greenpepperruby +15 -0
- data/data/greenpepper.rake +37 -0
- data/data/helper.rb +32 -0
- data/data/tags +6 -0
- data/lib/greenpepper/argumentparser.rb +161 -0
- data/lib/greenpepper/common/loadpath.rb +7 -0
- data/lib/greenpepper/context/htmlcontext.rb +26 -0
- data/lib/greenpepper/converter.rb +347 -0
- data/lib/greenpepper/core.rb +152 -0
- data/lib/greenpepper/example/collectionexample.rb +305 -0
- data/lib/greenpepper/example/dowithexample.rb +192 -0
- data/lib/greenpepper/example/exampleheader.rb +41 -0
- data/lib/greenpepper/example/examplewithfixture.rb +73 -0
- data/lib/greenpepper/example/executionresults.rb +160 -0
- data/lib/greenpepper/example/fieldaccessor.rb +36 -0
- data/lib/greenpepper/example/freetextexample.rb +51 -0
- data/lib/greenpepper/example/importexample.rb +39 -0
- data/lib/greenpepper/example/nameresolver.rb +69 -0
- data/lib/greenpepper/example/ruleforexample.rb +117 -0
- data/lib/greenpepper/example/setupexample.rb +79 -0
- data/lib/greenpepper/example/silentexample.rb +14 -0
- data/lib/greenpepper/example/unknownexample.rb +17 -0
- data/lib/greenpepper/exception/greenpepperexception.rb +57 -0
- data/lib/greenpepper/executionunit.rb +39 -0
- data/lib/greenpepper/factory/collectionexamplefactory.rb +59 -0
- data/lib/greenpepper/factory/dowithexamplefactory.rb +71 -0
- data/lib/greenpepper/factory/examplefactory.rb +14 -0
- data/lib/greenpepper/factory/freetextexamplefactory.rb +29 -0
- data/lib/greenpepper/factory/htmlexamplefactory.rb +49 -0
- data/lib/greenpepper/factory/importexamplefactory.rb +27 -0
- data/lib/greenpepper/factory/ruleforexamplefactory.rb +46 -0
- data/lib/greenpepper/factory/setupexamplefactory.rb +31 -0
- data/lib/greenpepper/factory/silentexamplefactory.rb +21 -0
- data/lib/greenpepper/factory/unknownexamplefactory.rb +16 -0
- data/lib/greenpepper/freetext.rb +164 -0
- data/lib/greenpepper/grammar/array.treetop +51 -0
- data/lib/greenpepper/grammar/arrayparser.rb +14 -0
- data/lib/greenpepper/greenpepperconfig.rb +19 -0
- data/lib/greenpepper/greenpeppertask.rb +60 -0
- data/lib/greenpepper/logger.rb +45 -0
- data/lib/greenpepper/parser/freetextparser.rb +96 -0
- data/lib/greenpepper/parser/htmlparser.rb +70 -0
- data/lib/greenpepper/parser/scenario.rb +25 -0
- data/lib/greenpepper/parser/table.rb +37 -0
- data/lib/greenpepper/parser/wikiparser.rb +26 -0
- data/lib/greenpepper/pass/freetextpass.rb +24 -0
- data/lib/greenpepper/pass/greenpepperpass.rb +92 -0
- data/lib/greenpepper/pass/tablepass.rb +38 -0
- data/lib/greenpepper/railsargumentparser.rb +46 -0
- data/lib/greenpepper/redpeppertask.rb +89 -0
- data/lib/greenpepper/repository/atlassianrepository.rb +100 -0
- data/lib/greenpepper/writer/consolewriter.rb +21 -0
- data/lib/greenpepper/writer/freetextresult.rb +233 -0
- data/lib/greenpepper/writer/freetextwriter.rb +44 -0
- data/lib/greenpepper/writer/html.rb +14 -0
- data/lib/greenpepper/writer/htmldocwriter.rb +82 -0
- data/lib/greenpepper/writer/htmlresult.rb +192 -0
- data/lib/greenpepper/writer/htmlwriter.rb +112 -0
- data/lib/greenpepper/writer/output.rb +26 -0
- data/lib/greenpepper/writer/result.rb +35 -0
- data/lib/greenpepper/writer/xmlwriter.rb +32 -0
- data/test/coreseedstest.rb +39 -0
- data/test/greenpepper/argumentparsertest.rb +162 -0
- data/test/greenpepper/common/loadpathtest.rb +24 -0
- data/test/greenpepper/common/stattest.rb +186 -0
- data/test/greenpepper/convertertest.rb +371 -0
- data/test/greenpepper/coretest.rb +159 -0
- data/test/greenpepper/example/collectionexampletest.rb +484 -0
- data/test/greenpepper/example/dowithexampletest.rb +148 -0
- data/test/greenpepper/example/exampletest.rb +28 -0
- data/test/greenpepper/example/freetextexampletest.rb +151 -0
- data/test/greenpepper/example/importexampletest.rb +79 -0
- data/test/greenpepper/example/nameresolvertest.rb +56 -0
- data/test/greenpepper/example/ruleforexampletest.rb +225 -0
- data/test/greenpepper/example/setupexampletest.rb +140 -0
- data/test/greenpepper/example/silentexampletest.rb +17 -0
- data/test/greenpepper/example/unknownexampletest.rb +17 -0
- data/test/greenpepper/factory/collectionexamplefactorytest.rb +51 -0
- data/test/greenpepper/factory/dowithexamplefactorytest.rb +48 -0
- data/test/greenpepper/factory/examplefactorytest.rb +88 -0
- data/test/greenpepper/factory/freetextexamplefactorytest.rb +54 -0
- data/test/greenpepper/factory/importexamplefactorytest.rb +40 -0
- data/test/greenpepper/factory/ruleforexamplefactorytest.rb +55 -0
- data/test/greenpepper/factory/setupexamplefactorytest.rb +29 -0
- data/test/greenpepper/factory/silentexamplefactorytest.rb +38 -0
- data/test/greenpepper/freetexttest.rb +222 -0
- data/test/greenpepper/grammar/arrayparsertest.rb +45 -0
- data/test/greenpepper/loggertest.rb +26 -0
- data/test/greenpepper/parser/freetextparsertest.rb +124 -0
- data/test/greenpepper/parser/htmlparsertest.rb +77 -0
- data/test/greenpepper/parser/wikiparsertest.rb +21 -0
- data/test/greenpepper/pass/freetextpasstest.rb +54 -0
- data/test/greenpepper/pass/greenpepperpasstest.rb +47 -0
- data/test/greenpepper/pass/tablepasstest.rb +23 -0
- data/test/greenpepper/repository/atlassionrepositorytest.rb +85 -0
- data/test/greenpepper/writer/freetextwritertest.rb +301 -0
- data/test/greenpepper/writer/htmlcollectionwritertest.rb +145 -0
- data/test/greenpepper/writer/htmldowithwritertest.rb +87 -0
- data/test/greenpepper/writer/htmlruleforwritertest.rb +147 -0
- data/test/greenpepper/writer/htmlsetupwritertest.rb +107 -0
- data/test/greenpepper/writer/htmlstatresulttest.rb +118 -0
- data/test/greenpepper/writer/htmlwriterpositiontest.rb +53 -0
- data/test/greenpepper/writer/writertest.rb +33 -0
- data/test/greenpepper/writer/xmlwritertest.rb +34 -0
- data/test/integration/collectionexampleintegrationtest.rb +64 -0
- data/test/integration/errorhandlingintegrationtest.rb +68 -0
- data/test/integration/freetextexampleintegrationtest.rb +75 -0
- data/test/integration/greenpepperexecutableintegrationtest.rb +22 -0
- data/test/integration/importexampleintegrationtest.rb +41 -0
- data/test/integration/interpretationordertest.rb +48 -0
- data/test/integration/ruleforexampleintegrationtest.rb +102 -0
- data/test/integration/securityintegrationtest.rb +30 -0
- data/test/integration/setupexampleintegrationtest.rb +31 -0
- data/test/integration/silentexampleintegrationtest.rb +29 -0
- data/test/task/greenpeppertasktest.rb +96 -0
- data/test/task/redpeppertasktest.rb +120 -0
- data/vendor/accents.rb +85 -0
- metadata +234 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
author: Martin Provencher (martin.provencher@usherbrooke.ca)
|
|
3
|
+
date: Februrary 24, 2009
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
require 'rubygems'
|
|
7
|
+
require 'libxml'
|
|
8
|
+
require 'test/unit'
|
|
9
|
+
require 'greenpepper/writer/htmlwriter'
|
|
10
|
+
require 'greenpepper/example/ruleforexample'
|
|
11
|
+
require 'greenpepper/context/htmlcontext'
|
|
12
|
+
|
|
13
|
+
require 'test/fixtures/fixture'
|
|
14
|
+
require 'test/helper/assertion'
|
|
15
|
+
require 'test/helper/html'
|
|
16
|
+
|
|
17
|
+
include GreenPepper
|
|
18
|
+
|
|
19
|
+
class HtmlRuleForWriterTest < Test::Unit::TestCase
|
|
20
|
+
|
|
21
|
+
def test_for_example_three_inputs_two_outputs_two_rows
|
|
22
|
+
base_html = "<table><tr><td>Rule for</td><td>RuleForExampleAddSubFixtureThreeOperand</td></tr>"
|
|
23
|
+
base_html += "<tr><td>operand1</td><td>operand2</td><td>sum</td><td>operand3</td><td>sub</td></tr>"
|
|
24
|
+
base_html += "<tr><td>9</td><td>8</td><td>6</td><td>5</td><td>4</td></tr>"
|
|
25
|
+
base_html += "<tr><td>-1</td><td>0</td><td>1</td><td>2</td><td>3</td></tr></table>"
|
|
26
|
+
|
|
27
|
+
html_ex = "<table><tr><td>Rule for</td><td>RuleForExampleAddSubFixtureThreeOperand</td></tr><tr><td>operand1</td><td>operand2</td><td>sum</td><td>operand3</td><td>sub</td></tr><tr><td>9</td><td>8</td><td style=\"background-color: #F08080\"><b>Expected: </b>6<b> Received: </b>17</td><td>5</td><td style=\"background-color: #F08080\"><b>Expected: </b>4<b> Received: </b>-4</td></tr><tr><td>-1</td><td>0</td><td style=\"background-color: #F08080\"><b>Expected: </b>1<b> Received: </b>-1</td><td>2</td><td style=\"background-color: #F08080\"><b>Expected: </b>3<b> Received: </b>-3</td></tr></table>"
|
|
28
|
+
expected = HtmlHelper.create_expected html_ex
|
|
29
|
+
|
|
30
|
+
ex = RuleForExample.new "RuleForExampleAddSubFixtureThreeOperand", NameResolver
|
|
31
|
+
ex.add_input_header "operand1"
|
|
32
|
+
ex.add_input_header "operand2"
|
|
33
|
+
ex.add_output_header "sum"
|
|
34
|
+
ex.add_input_header "operand3"
|
|
35
|
+
ex.add_output_header "sub"
|
|
36
|
+
ex.add_row ["9","8","6","5","4"]
|
|
37
|
+
ex.add_row ["-1","0","1","2","3"]
|
|
38
|
+
|
|
39
|
+
result = HtmlHelper.test_x_html_table(1, ex, base_html)
|
|
40
|
+
assert_equal expected, result
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_example_1i_1o_rewrote_on_html_with_font
|
|
44
|
+
base_html = "<table><tr><td>Rule for</td><td>RuleForExampleEqualityPlusOneFixture</td></tr>"
|
|
45
|
+
base_html += "<tr><td>value</td><td>equality</td></tr>"
|
|
46
|
+
base_html += "<tr><td><font color='#F08080'>3</font></td><td><b>4</b></td></tr></table>"
|
|
47
|
+
|
|
48
|
+
html_ex = "<table><tr><td>Rule for</td><td>RuleForExampleEqualityPlusOneFixture</td></tr><tr><td>value</td><td>equality</td></tr><tr><td><font color=\"#F08080\">3</font></td><td style=\"background-color: #98FB98\"><b>4</b></td></tr></table>"
|
|
49
|
+
expected = HtmlHelper.create_expected html_ex
|
|
50
|
+
|
|
51
|
+
ex = RuleForExample.new "RuleForExampleEqualityPlusOneFixture", NameResolver
|
|
52
|
+
ex.add_input_header "value"
|
|
53
|
+
ex.add_output_header "equality"
|
|
54
|
+
ex.add_row ["3","4"]
|
|
55
|
+
|
|
56
|
+
result = HtmlHelper.test_x_html_table 1, ex, base_html
|
|
57
|
+
assert_equal expected, result
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_bad_results_return_expected_and_received_value_with_parse_and_format_in_fixture
|
|
61
|
+
base_html = "<table><tr><td>Rule for</td><td>RuleForExampleSumFixture</td></tr><tr><td>operand1</td><td>operand2</td><td>sum</td></tr>"
|
|
62
|
+
base_html += "<tr><td>3</td><td>5</td><td>9</td></tr></table>"
|
|
63
|
+
|
|
64
|
+
html_ex = "<table><tr><td>Rule for</td><td>RuleForExampleSumFixture</td></tr><tr><td>operand1</td><td>operand2</td><td>sum</td></tr><tr><td>3</td><td>5</td><td style=\"background-color: #F08080\"><b>Expected: </b>test=9.0<b> Received: </b>test=8.0</td></tr></table>"
|
|
65
|
+
expected = HtmlHelper.create_expected html_ex
|
|
66
|
+
|
|
67
|
+
bad_sum_example = RuleForExample.new(
|
|
68
|
+
"RuleForExampleSumFixtureParseFormat", NameResolver)
|
|
69
|
+
bad_sum_example.add_input_header "operand1"
|
|
70
|
+
bad_sum_example.add_input_header "operand2"
|
|
71
|
+
bad_sum_example.add_output_header "sum"
|
|
72
|
+
bad_sum_example.add_row ["3","5","9"]
|
|
73
|
+
|
|
74
|
+
result = HtmlHelper.test_x_html_table(1, bad_sum_example, base_html)
|
|
75
|
+
assert_equal expected, result
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def test_for_example_displays_exception_html_generation
|
|
79
|
+
base_html = "<table border=\"1\"><tr><td>Rule for</td><td>RaiseErrorFixture</td></tr><tr><td>operand 1</td><td>raise_error?</td></tr>"
|
|
80
|
+
base_html += "<tr><td>3</td><td>5</td></tr></table>"
|
|
81
|
+
|
|
82
|
+
html_ex = "<table border=\"1\"><tr><td>Rule for</td><td>RaiseErrorFixture</td></tr><tr><td>operand 1</td><td>raise_error?</td></tr><tr><td>3</td><td style=\"background-color: #F0E68C\">RuntimeError: Somme Error</td></tr></table>"
|
|
83
|
+
expected = HtmlHelper.create_expected html_ex
|
|
84
|
+
|
|
85
|
+
ex = RuleForExample.new "RaiseErrorFixture", NameResolver
|
|
86
|
+
ex.add_input_header "operand 1"
|
|
87
|
+
ex.add_output_header "raise_error"
|
|
88
|
+
ex.add_row ["3","5"]
|
|
89
|
+
|
|
90
|
+
result = HtmlHelper.test_x_html_table 1, ex, base_html,
|
|
91
|
+
{:no_exception_stack => true}
|
|
92
|
+
|
|
93
|
+
assert_equal expected, result
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def test_for_example_html_writer_non_existing_fixture
|
|
97
|
+
base_html = "<table border=\"1\"><tr><th>Rule for</th><th>non existing fixture test</th></tr><tr><td>operand1</td><td>raise_error?</td></tr>"
|
|
98
|
+
base_html += "<tr><td>3</td><td>5</td></tr></table>"
|
|
99
|
+
|
|
100
|
+
html_ex = "<table border=\"1\"><tr><th>Rule for</th><th style=\"background-color: #F0E68C\">non existing fixture test</th></tr><tr><td>operand1</td><td>raise_error?</td></tr><tr><td>3</td><td>5</td></tr></table>"
|
|
101
|
+
expected = HtmlHelper.create_expected html_ex
|
|
102
|
+
|
|
103
|
+
ex = RuleForExample.new "Non existing fixture test", NameResolver
|
|
104
|
+
ex.add_input_header "operand1"
|
|
105
|
+
ex.add_output_header "raise_error"
|
|
106
|
+
ex.add_row ["3","5"]
|
|
107
|
+
|
|
108
|
+
result = HtmlHelper.test_x_html_table(1, ex, base_html)
|
|
109
|
+
assert_equal expected, result
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
class MoneyTypeDollarAtEnd < TypeBase
|
|
113
|
+
def self.regex
|
|
114
|
+
/^\d+\.\d+\$$/
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def self.convert
|
|
118
|
+
Proc.new {|s| s[0..-2].to_f }
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def self.format
|
|
122
|
+
Proc.new { |money,expected_format|
|
|
123
|
+
money = money.to_s.split(".")
|
|
124
|
+
money[0] + "." + money[1].ljust(2,'0') + "\$"
|
|
125
|
+
}
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def test_bad_results_return_expected_and_received_value_with_parse_and_format_in_type_converter
|
|
130
|
+
base_html = "<table><tr><td>Rule for</td><td>RuleForExampleSumFixture</td></tr><tr><td>operand1</td><td>operand2</td><td>sum</td></tr>"
|
|
131
|
+
base_html += "<tr><td>3.00$</td><td>5.00$</td><td>9.00$</td></tr></table>"
|
|
132
|
+
|
|
133
|
+
html_ex = "<table><tr><td>Rule for</td><td>RuleForExampleSumFixture</td></tr><tr><td>operand1</td><td>operand2</td><td>sum</td></tr><tr><td>3.00$</td><td>5.00$</td><td style=\"background-color: #F08080\"><b>Expected: </b>9.00$<b> Received: </b>8.00$</td></tr></table>"
|
|
134
|
+
expected = HtmlHelper.create_expected html_ex
|
|
135
|
+
|
|
136
|
+
ex = RuleForExample.new(
|
|
137
|
+
"RuleForExampleSumFixture", NameResolver)
|
|
138
|
+
ex.add_input_header "operand1"
|
|
139
|
+
ex.add_input_header "operand2"
|
|
140
|
+
ex.add_output_header "sum"
|
|
141
|
+
ex.add_row ["3.00$","5.00$","9.00$"]
|
|
142
|
+
|
|
143
|
+
result = HtmlHelper.test_x_html_table(1, ex, base_html)
|
|
144
|
+
assert_equal expected, result
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
end
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
author: Simon Mathieu
|
|
3
|
+
date: March 24, 2009
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
require 'rubygems'
|
|
7
|
+
require 'libxml'
|
|
8
|
+
require 'test/unit'
|
|
9
|
+
require 'greenpepper/writer/htmlwriter'
|
|
10
|
+
require 'greenpepper/example/setupexample'
|
|
11
|
+
require 'greenpepper/parser/table'
|
|
12
|
+
require 'greenpepper/factory/setupexamplefactory'
|
|
13
|
+
|
|
14
|
+
require 'test/fixtures/fixture'
|
|
15
|
+
require 'test/fixtures/setupfixture'
|
|
16
|
+
require 'test/helper/assertion'
|
|
17
|
+
require 'test/helper/html'
|
|
18
|
+
|
|
19
|
+
include GreenPepper
|
|
20
|
+
|
|
21
|
+
class HtmlSetupWriterTest < Test::Unit::TestCase
|
|
22
|
+
|
|
23
|
+
def test_setup_writer_multiple_lines
|
|
24
|
+
base_html = '
|
|
25
|
+
<table border="1">
|
|
26
|
+
<tr><td>Setup</td>
|
|
27
|
+
<td>setup multiple lines</td></tr>
|
|
28
|
+
|
|
29
|
+
<tr><td>a</td><td>b</td></tr>
|
|
30
|
+
<tr><td>1</td><td>2</td></tr>
|
|
31
|
+
<tr><td>3</td><td>4</td></tr>
|
|
32
|
+
<tr><td>5</td><td>6</td></tr>
|
|
33
|
+
</table>'
|
|
34
|
+
|
|
35
|
+
expected = "<table border=\"1\">\n <tr><td>Setup</td>\n <td>setup multiple lines</td></tr>\n\n <tr><td>a</td><td>b</td></tr>\n <tr><td>1</td><td>2</td><td style=\"background-color: #98FB98\">Success</td></tr>\n <tr><td>3</td><td>4</td><td style=\"background-color: #F08080\">Fail</td></tr>\n <tr><td>5</td><td>6</td><td style=\"background-color: #F0E68C\">RuntimeError: SetupError</td></tr>\n </table>"
|
|
36
|
+
expected = HtmlHelper.create_expected expected
|
|
37
|
+
|
|
38
|
+
table = Table.new
|
|
39
|
+
table.push_row ['setup', 'SetupMultipleLines']
|
|
40
|
+
table.push_row ['a', 'b']
|
|
41
|
+
table.push_row ['1', '2']
|
|
42
|
+
table.push_row ['3', '4']
|
|
43
|
+
table.push_row ['3', '4']
|
|
44
|
+
|
|
45
|
+
factory = SetupExampleFactory.new
|
|
46
|
+
ex = factory.create_example table
|
|
47
|
+
|
|
48
|
+
result = HtmlHelper.test_x_html_table(1, ex, base_html,
|
|
49
|
+
{:no_exception_stack => true})
|
|
50
|
+
|
|
51
|
+
assert_equal expected, result
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_setup_example_writer_fixture_not_found
|
|
55
|
+
|
|
56
|
+
base_html = '
|
|
57
|
+
<table border="1">
|
|
58
|
+
<tr><td>Setup</td>
|
|
59
|
+
<td>Fixture Not Found</td></tr>
|
|
60
|
+
<tr><td>a</td><td>b</td></tr>
|
|
61
|
+
</table>'
|
|
62
|
+
expected = "<table border=\"1\">\n <tr><td>Setup</td>\n <td style=\"background-color: #F0E68C\">Fixture Not Found</td></tr> <tr><td>a</td><td>b</td></tr>\n </table>"
|
|
63
|
+
expected = HtmlHelper.create_expected expected
|
|
64
|
+
|
|
65
|
+
table = Table.new
|
|
66
|
+
table.push_row ['Setup', 'Fixture Not Found']
|
|
67
|
+
table.push_row ['a', 'b']
|
|
68
|
+
|
|
69
|
+
factory = SetupExampleFactory.new
|
|
70
|
+
ex = factory.create_example table
|
|
71
|
+
|
|
72
|
+
result = HtmlHelper.test_x_html_table(1, ex, base_html)
|
|
73
|
+
assert_equal expected, result
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def test_setup_writer_exception_in_function
|
|
77
|
+
base_html = '<table border="1">
|
|
78
|
+
<tr><td>Setup</td>
|
|
79
|
+
<td>setup raise error in setter</td></tr>
|
|
80
|
+
|
|
81
|
+
<tr><td>h1</td><td>h2</td></tr>
|
|
82
|
+
<tr><td>2</td><td>4</td></tr>
|
|
83
|
+
</table>'
|
|
84
|
+
expected ='<table border="1">
|
|
85
|
+
<tr><td>Setup</td>
|
|
86
|
+
<td>setup raise error in setter</td></tr>
|
|
87
|
+
|
|
88
|
+
<tr><td>h1</td><td>h2</td></tr>
|
|
89
|
+
<tr><td style="background-color: #F0E68C">StandardError: Bob error</td><td>4</td><td style="background-color: #F08080">Fail</td></tr>
|
|
90
|
+
</table>'
|
|
91
|
+
expected = HtmlHelper.create_expected expected
|
|
92
|
+
|
|
93
|
+
table = Table.new
|
|
94
|
+
table.push_row ['setup', 'SetupRaiseErrorInSetter']
|
|
95
|
+
table.push_row ['h1', 'h2']
|
|
96
|
+
table.push_row [RuntimeError.new, '2']
|
|
97
|
+
|
|
98
|
+
factory = SetupExampleFactory.new
|
|
99
|
+
ex = factory.create_example table
|
|
100
|
+
|
|
101
|
+
result = HtmlHelper.test_x_html_table(1, ex, base_html,
|
|
102
|
+
{:no_exception_stack => true})
|
|
103
|
+
|
|
104
|
+
assert_equal expected, result
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
end
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
author: Geoffrey Vanstaen (gvanstaen@hotmail.com)
|
|
3
|
+
date: September 4, 2009
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
require 'rubygems'
|
|
7
|
+
require 'libxml'
|
|
8
|
+
require 'test/unit'
|
|
9
|
+
require 'greenpepper/writer/htmlwriter'
|
|
10
|
+
require 'greenpepper/example/ruleforexample'
|
|
11
|
+
require 'greenpepper/context/htmlcontext'
|
|
12
|
+
|
|
13
|
+
require 'test/fixtures/fixture'
|
|
14
|
+
require 'test/helper/assertion'
|
|
15
|
+
require 'test/helper/html'
|
|
16
|
+
|
|
17
|
+
include GreenPepper
|
|
18
|
+
|
|
19
|
+
class HtmlStatResultWriteTest < Test::Unit::TestCase
|
|
20
|
+
|
|
21
|
+
def setup
|
|
22
|
+
base_html = "<td>3</td>"
|
|
23
|
+
@cell_root = (LibXML::XML::Parser.string base_html).parse.root
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def teardown
|
|
27
|
+
assert_equal @expected, @result.write(@cell_root).to_s
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_success_result_write_green
|
|
31
|
+
@expected = "<td style=\"background-color: #98FB98\">3</td>"
|
|
32
|
+
@result = SuccessExampleResult.new
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_none_result_do_nothing
|
|
36
|
+
@expected = "<td>3</td>"
|
|
37
|
+
@result = NoExampleResult.new
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_fail_result_write_red
|
|
41
|
+
@expected = "<td style=\"background-color: #F08080\">3</td>"
|
|
42
|
+
@result = FailureExampleResult.new
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_nil_result_write_yellow
|
|
46
|
+
@expected = "<td style=\"background-color: #F0E68C\">3</td>"
|
|
47
|
+
@result = ErrorExampleResult.new
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_ignore_result_write_grey
|
|
51
|
+
base_html = "<td></td>"
|
|
52
|
+
@cell_root = (LibXML::XML::Parser.string base_html).parse.root
|
|
53
|
+
@expected = "<td style=\"background-color: #D3D3D3\">2</td>"
|
|
54
|
+
@result = WriteIgnoredExampleResult.new(2)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_result_success_write_is_green
|
|
58
|
+
@expected = "<td style=\"background-color: #98FB98\">3Success</td>"
|
|
59
|
+
@result = WriteSucessExampleResult.new
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_result_fail_write_is_red
|
|
63
|
+
@expected = "<td style=\"background-color: #F08080\">3Fail</td>"
|
|
64
|
+
@result = WriteFailExampleResult.new
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_result_exception_is_yellow_and_have_exception_label
|
|
68
|
+
@expected = "<td style=\"background-color: #F0E68C\">Exception: Exception</td>"
|
|
69
|
+
exception = Exception.new
|
|
70
|
+
@result = WriteExceptionExampleResult.new exception
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def test_result_excepted_is_red_and_have_expected_received
|
|
75
|
+
@expected = "<td style=\"background-color: #F08080\"><b>Expected: </b>2<b>"+
|
|
76
|
+
" Received: </b>3</td>"
|
|
77
|
+
@result = WriteExpectedExampleResult.new 2, 3
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def test_result_missing_is_red_and_have_missing_label
|
|
81
|
+
@expected = "<td style=\"background-color: #F08080\"><i>Missing </i>3</td>"
|
|
82
|
+
@result = WriteMissingExampleResult.new
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_result_surplus_is_red_and_have_surplus_label_with_value
|
|
86
|
+
@expected = "<td style=\"background-color: #F08080\"><i>Surplus </i>4</td>"
|
|
87
|
+
@result = WriteSurplusExampleResult.new 4
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
class HtmlresultResultOptionTest < Test::Unit::TestCase
|
|
92
|
+
def setup
|
|
93
|
+
base_html = "<td>3</td>"
|
|
94
|
+
@cell_root = (LibXML::XML::Parser.string base_html).parse.root
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def test_result_exception_should_print_stack_by_default
|
|
98
|
+
@expected = "<td style=\"background-color: #F0E68C\">Exception: Exception"+
|
|
99
|
+
"<hr/>a<br/>b<br/></td>"
|
|
100
|
+
exception = Exception.new
|
|
101
|
+
exception.set_backtrace ["a", "b"]
|
|
102
|
+
|
|
103
|
+
@result = WriteExceptionExampleResult.new exception
|
|
104
|
+
|
|
105
|
+
assert_equal @expected, @result.write(@cell_root).to_s
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def test_result_exception_should_not_print_stack_when_no_exception_stack
|
|
109
|
+
@expected = "<td style=\"background-color: #F0E68C\">Exception: Exception</td>"
|
|
110
|
+
exception = Exception.new
|
|
111
|
+
exception.set_backtrace ["a", "b"]
|
|
112
|
+
|
|
113
|
+
@result = WriteExceptionExampleResult.new exception
|
|
114
|
+
|
|
115
|
+
assert_equal @expected,
|
|
116
|
+
@result.write(@cell_root, {:no_exception_stack => true}).to_s
|
|
117
|
+
end
|
|
118
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
author: Geoffrey Vanstaen (gvanstaen@hotmail.com)
|
|
3
|
+
date: September 22, 2009
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
require 'rubygems'
|
|
7
|
+
require 'libxml'
|
|
8
|
+
require 'test/unit'
|
|
9
|
+
require 'lib/greenpepper/writer/htmlwriter'
|
|
10
|
+
require 'lib/greenpepper/context/htmlcontext'
|
|
11
|
+
require 'lib/greenpepper/executionunit'
|
|
12
|
+
|
|
13
|
+
require 'test/fixtures/fixture'
|
|
14
|
+
require 'test/helper/assertion'
|
|
15
|
+
require 'test/helper/html'
|
|
16
|
+
require 'test/helper/commonhelper'
|
|
17
|
+
|
|
18
|
+
include GreenPepper
|
|
19
|
+
|
|
20
|
+
class HtmlWriterPositionTest < Test::Unit::TestCase
|
|
21
|
+
include CommonHelper
|
|
22
|
+
|
|
23
|
+
def setup
|
|
24
|
+
@base_html = load_file('test/seeds/html_test_simple_table_multiple_argument_check_position.html')
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_writer_write_success_at_asked_position
|
|
28
|
+
expected = load_file('test/expected/html_test_simple_table_multiple_argument_check_position_success.html')
|
|
29
|
+
assert_write(exampleResult = SuccessExampleResult.new, expected, 2, 2)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_writer_write_fail_at_asked_position
|
|
33
|
+
expected = load_file('test/expected/html_test_simple_table_multiple_argument_check_position_failure.html')
|
|
34
|
+
assert_write(exampleResult = FailureExampleResult.new, expected, 2, 1)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_writer_write_in_an_existing_cell
|
|
38
|
+
expected = load_file('test/expected/html_test_simple_table_multiple_argument_check_position_empty_cell.html')
|
|
39
|
+
assert_write(exampleResult = SuccessExampleResult.new, expected, 2, 3)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def assert_write(exampleResult, expected, row, column)
|
|
43
|
+
results = HtmlTableExecutionResults.new
|
|
44
|
+
results.add row, column, exampleResult
|
|
45
|
+
|
|
46
|
+
ex_unit = ExecutionUnit.new(nil, HtmlContext.new, nil, results)
|
|
47
|
+
|
|
48
|
+
writer = HtmlWriter.new
|
|
49
|
+
received = writer.write(@base_html, [ex_unit])
|
|
50
|
+
|
|
51
|
+
assert_equal expected, received
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
author: Martin Provencher (martin.provencher@usherbrooke.ca)
|
|
3
|
+
date: Februrary 24, 2009
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
require 'rubygems'
|
|
7
|
+
require 'libxml'
|
|
8
|
+
require 'test/unit'
|
|
9
|
+
require 'greenpepper/writer/htmlwriter'
|
|
10
|
+
require 'greenpepper/example/ruleforexample'
|
|
11
|
+
require 'greenpepper/context/htmlcontext'
|
|
12
|
+
|
|
13
|
+
require 'test/fixtures/fixture'
|
|
14
|
+
require 'test/helper/assertion'
|
|
15
|
+
require 'test/helper/html'
|
|
16
|
+
|
|
17
|
+
include GreenPepper
|
|
18
|
+
|
|
19
|
+
class WriterTest < Test::Unit::TestCase
|
|
20
|
+
def setup
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_success_stat_write_green
|
|
24
|
+
base_html = "<td>3</td>"
|
|
25
|
+
expected = "<td style=\"background-color: #98FB98\">3</td>"
|
|
26
|
+
|
|
27
|
+
result = SuccessExampleResult.new
|
|
28
|
+
cell_root = (LibXML::XML::Parser.string base_html).parse.root
|
|
29
|
+
|
|
30
|
+
assert_equal expected, result.write(cell_root).to_s
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|