jstdutil 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog +4 -0
- data/README.rdoc +1 -1
- data/VERSION +1 -1
- data/lib/jstdutil/cli.rb +3 -2
- data/lib/jstdutil/colorful_html.rb +20 -0
- data/lib/jstdutil/formatter.rb +29 -0
- data/lib/jstdutil/redgreen.rb +3 -24
- data/lib/jstdutil/test_runner.rb +1 -1
- data/lib/jstdutil.rb +2 -0
- data/test/cli_test.rb +12 -2
- data/test/colorful_html_test.rb +25 -0
- data/test/formatter_test.rb +48 -0
- data/test/redgreen_test.rb +13 -35
- metadata +10 -3
data/Changelog
ADDED
data/README.rdoc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/jstdutil/cli.rb
CHANGED
@@ -15,8 +15,9 @@ module Jstdutil
|
|
15
15
|
def self.run(args = [])
|
16
16
|
args = args.join(" ")
|
17
17
|
jar = (args.match(/--jar\s+([^\s]+)/) || [])[1] || Jstdutil.jar
|
18
|
-
|
19
|
-
Jstdutil
|
18
|
+
format_type = args.match(/--html/) ? Jstdutil::ColorfulHtml : Jstdutil::RedGreen;
|
19
|
+
report = Jstdutil.run("#{args.gsub(/(--jar\s+[^\s]+|--html)/, '')}", jar)
|
20
|
+
Jstdutil::Formatter.format(report, format_type)
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Jstdutil
|
2
|
+
class ColorfulHtml
|
3
|
+
|
4
|
+
module Color
|
5
|
+
|
6
|
+
def self.method_missing(color_name, *args)
|
7
|
+
color(color_name) + args.first + "</span>"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.color(color)
|
11
|
+
"<span class='#{color}'>"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.wrap_report(report)
|
16
|
+
"<style>.red {color: #c00;} .green {color: #0c0;} .yellow {color: #ff0;} </style><pre>#{report}</pre>"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Jstdutil
|
2
|
+
class Formatter
|
3
|
+
#
|
4
|
+
# Process report from JsTestDriver and colorize it with beautiful
|
5
|
+
# colors. Returns report with encoded colors.
|
6
|
+
#
|
7
|
+
def self.format(report, type)
|
8
|
+
return "" if report.nil?
|
9
|
+
|
10
|
+
type.wrap_report(report.split("\n").collect do |line|
|
11
|
+
if line =~ /Passed: 0; Fails: 0; Errors:? 0/
|
12
|
+
type::Color.yellow(line)
|
13
|
+
elsif line =~ /Passed: \d+; Fails: (\d+); Errors:? (\d+)/
|
14
|
+
type::Color.send($1.to_i + $2.to_i != 0 ? :red : :green, line)
|
15
|
+
elsif line =~ /^[\.EF]+$/
|
16
|
+
line.gsub(/\./, type::Color.green(".")).gsub(/F/, type::Color.red("F")).gsub("E", type::Color.yellow("E"))
|
17
|
+
elsif line =~ /failed/
|
18
|
+
type::Color.red(line)
|
19
|
+
elsif line =~ /passed/
|
20
|
+
type::Color.green(line)
|
21
|
+
elsif line =~ /error/
|
22
|
+
type::Color.yellow(line)
|
23
|
+
else
|
24
|
+
line
|
25
|
+
end
|
26
|
+
end.join("\n"))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/jstdutil/redgreen.rb
CHANGED
@@ -23,30 +23,9 @@ module Jstdutil
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
# colors. Returns report with encoded colors.
|
29
|
-
#
|
30
|
-
def self.format(report)
|
31
|
-
return "" if report.nil?
|
32
|
-
|
33
|
-
report.split("\n").collect do |line|
|
34
|
-
if line =~ /Passed: 0; Fails: 0; Errors:? 0/
|
35
|
-
Color.yellow(line)
|
36
|
-
elsif line =~ /Passed: \d+; Fails: (\d+); Errors:? (\d+)/
|
37
|
-
Color.send($1.to_i + $2.to_i != 0 ? :red : :green, line)
|
38
|
-
elsif line =~ /^[\.EF]+$/
|
39
|
-
line.gsub(/\./, Color.green(".")).gsub(/F/, Color.red("F")).gsub("E", Color.yellow("E"))
|
40
|
-
elsif line =~ /failed/
|
41
|
-
Color.red(line)
|
42
|
-
elsif line =~ /passed/
|
43
|
-
Color.green(line)
|
44
|
-
elsif line =~ /error/
|
45
|
-
Color.yellow(line)
|
46
|
-
else
|
47
|
-
line
|
48
|
-
end
|
49
|
-
end.join("\n")
|
26
|
+
def self.wrap_report(report)
|
27
|
+
report
|
50
28
|
end
|
29
|
+
|
51
30
|
end
|
52
31
|
end
|
data/lib/jstdutil/test_runner.rb
CHANGED
@@ -56,7 +56,7 @@ module Jstdutil
|
|
56
56
|
|
57
57
|
raise ArgumentError.new("Unable to guess JsTestDriver config file, please name it jstestdriver*.conf or provide the --config option") if config.nil?
|
58
58
|
|
59
|
-
@args.sub!(/(--config\s+[^\s]+)?/, "--config #{config}")
|
59
|
+
@args.sub!(/(--config\s+[^\s]+)?/, "--config #{config} ")
|
60
60
|
|
61
61
|
JsTestDriver::Config.new(config)
|
62
62
|
end
|
data/lib/jstdutil.rb
CHANGED
data/test/cli_test.rb
CHANGED
@@ -8,7 +8,7 @@ class JstdutilCliTest < Test::Unit::TestCase
|
|
8
8
|
jar = "path/to.jar"
|
9
9
|
result = "REPORT"
|
10
10
|
Jstdutil.expects(:run).with("--tests all ", jar).returns(result)
|
11
|
-
Jstdutil::
|
11
|
+
Jstdutil::Formatter.expects(:format).with(result, Jstdutil::RedGreen).returns(result * 2)
|
12
12
|
|
13
13
|
assert_equal result * 2, Jstdutil::Cli.run("--tests all --jar #{jar}".split(" "))
|
14
14
|
end
|
@@ -18,9 +18,19 @@ class JstdutilCliTest < Test::Unit::TestCase
|
|
18
18
|
result = "REPORT"
|
19
19
|
Jstdutil.expects(:jar).returns(jar)
|
20
20
|
Jstdutil.expects(:run).with("--tests all", jar).returns(result)
|
21
|
-
Jstdutil::
|
21
|
+
Jstdutil::Formatter.expects(:format).with(result, Jstdutil::RedGreen).returns(result * 2)
|
22
22
|
|
23
23
|
assert_equal result * 2, Jstdutil::Cli.run("--tests all".split(" "))
|
24
24
|
end
|
25
|
+
|
26
|
+
should "run jstestdriver command through JsColorfulHtml with --html" do
|
27
|
+
jar = "path/to.jar"
|
28
|
+
result = "REPORT"
|
29
|
+
Jstdutil.expects(:jar).returns(jar)
|
30
|
+
Jstdutil.expects(:run).with("--tests all ", jar).returns(result)
|
31
|
+
Jstdutil::Formatter.expects(:format).with(result, Jstdutil::ColorfulHtml).returns(result * 2)
|
32
|
+
|
33
|
+
assert_equal result * 2, Jstdutil::Cli.run("--tests all --html".split(" "))
|
34
|
+
end
|
25
35
|
end
|
26
36
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class ColorfulHtmlTest < Test::Unit::TestCase
|
4
|
+
context "adding pretty colors" do
|
5
|
+
|
6
|
+
should "wrap in green" do
|
7
|
+
assert_equal "<span class='green'>trees</span>", Jstdutil::ColorfulHtml::Color.green("trees")
|
8
|
+
end
|
9
|
+
|
10
|
+
should "wrap in red" do
|
11
|
+
assert_equal "<span class='red'>dress</span>", Jstdutil::ColorfulHtml::Color.red("dress")
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
context "wrapping report" do
|
17
|
+
|
18
|
+
should "add styles and pre" do
|
19
|
+
assert_equal "<style>.red {color: #c00;} .green {color: #0c0;} .yellow {color: #ff0;} </style><pre>present</pre>",
|
20
|
+
Jstdutil::ColorfulHtml.wrap_report("present")
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class FormatterTest < Test::Unit::TestCase
|
4
|
+
context "formatting report" do
|
5
|
+
setup do
|
6
|
+
@report = <<-REPORT
|
7
|
+
.FE
|
8
|
+
Total 3 tests (Passed: 1; Fails: 1; Errors: 1) (2.00 ms)
|
9
|
+
Mozilla 1.9.1.2: Run 3 tests (Passed: 1; Fails: 1; Errors 1) (2.00 ms)
|
10
|
+
GreeterTest.testSomethingElse failed (1.00 ms): expected "1" but was "2"
|
11
|
+
()@http://localhost:4224/test/test/greeter_test.js:10
|
12
|
+
[LOG] UH!
|
13
|
+
GreeterTest.testSomethingElseFails error (1.00 ms): assertEqual is not defined
|
14
|
+
()@http://localhost:4224/test/test/greeter_test.js:14
|
15
|
+
REPORT
|
16
|
+
end
|
17
|
+
|
18
|
+
should "add pretty colors for both RedGreen and ColorfulHtml" do
|
19
|
+
verify_pretty_colors(Jstdutil::RedGreen)
|
20
|
+
verify_pretty_colors(Jstdutil::ColorfulHtml)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
def verify_pretty_colors(type)
|
26
|
+
report = Jstdutil::Formatter.format(@report, type)
|
27
|
+
|
28
|
+
lines = @report.split("\n")
|
29
|
+
|
30
|
+
expected = type::Color.green(".") +
|
31
|
+
type::Color.red("F") +
|
32
|
+
type::Color.yellow("E") + "\n"
|
33
|
+
expected << type::Color.red(lines[1]) + "\n"
|
34
|
+
expected << type::Color.red(lines[2]) + "\n"
|
35
|
+
expected << type::Color.red(lines[3]) + "\n"
|
36
|
+
expected << lines[4] + "\n"
|
37
|
+
expected << lines[5] + "\n"
|
38
|
+
expected << type::Color.yellow(lines[6]) + "\n"
|
39
|
+
expected << lines[7]
|
40
|
+
|
41
|
+
expected = type.wrap_report(expected)
|
42
|
+
|
43
|
+
expected.split("\n").size.times {|i|
|
44
|
+
assert_equal expected.split("\n")[i], report.split("\n")[i]
|
45
|
+
}
|
46
|
+
assert_equal expected, report
|
47
|
+
end
|
48
|
+
end
|
data/test/redgreen_test.rb
CHANGED
@@ -1,45 +1,23 @@
|
|
1
1
|
require "test_helper"
|
2
2
|
|
3
3
|
class RedGreenTest < Test::Unit::TestCase
|
4
|
-
context "
|
5
|
-
setup do
|
6
|
-
@report = <<-REPORT
|
7
|
-
.FE
|
8
|
-
Total 3 tests (Passed: 1; Fails: 1; Errors: 1) (2.00 ms)
|
9
|
-
Mozilla 1.9.1.2: Run 3 tests (Passed: 1; Fails: 1; Errors 1) (2.00 ms)
|
10
|
-
GreeterTest.testSomethingElse failed (1.00 ms): expected "1" but was "2"
|
11
|
-
()@http://localhost:4224/test/test/greeter_test.js:10
|
12
|
-
[LOG] UH!
|
13
|
-
GreeterTest.testSomethingElseFails error (1.00 ms): assertEqual is not defined
|
14
|
-
()@http://localhost:4224/test/test/greeter_test.js:14
|
15
|
-
REPORT
|
16
|
-
end
|
4
|
+
context "adding pretty colors" do
|
17
5
|
|
18
|
-
should "
|
19
|
-
|
6
|
+
should "wrap in green" do
|
7
|
+
assert_equal "\e[32mtrees\e[0m", Jstdutil::RedGreen::Color.green("trees")
|
8
|
+
end
|
20
9
|
|
21
|
-
|
10
|
+
should "wrap in red" do
|
11
|
+
assert_equal "\e[31mdress\e[0m", Jstdutil::RedGreen::Color.red("dress")
|
12
|
+
end
|
22
13
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
expected << Jstdutil::RedGreen::Color.red(lines[1]) + "\n"
|
27
|
-
expected << Jstdutil::RedGreen::Color.red(lines[2]) + "\n"
|
28
|
-
expected << Jstdutil::RedGreen::Color.red(lines[3]) + "\n"
|
29
|
-
expected << lines[4] + "\n"
|
30
|
-
expected << lines[5] + "\n"
|
31
|
-
expected << Jstdutil::RedGreen::Color.yellow(lines[6]) + "\n"
|
32
|
-
expected << lines[7]
|
14
|
+
end
|
15
|
+
|
16
|
+
context "wrapping report" do
|
33
17
|
|
34
|
-
|
35
|
-
assert_equal
|
36
|
-
assert_equal expected.split("\n")[2], report.split("\n")[2]
|
37
|
-
assert_equal expected.split("\n")[3], report.split("\n")[3]
|
38
|
-
assert_equal expected.split("\n")[4], report.split("\n")[4]
|
39
|
-
assert_equal expected.split("\n")[5], report.split("\n")[5]
|
40
|
-
assert_equal expected.split("\n")[6], report.split("\n")[6]
|
41
|
-
assert_equal expected.split("\n")[7], report.split("\n")[7]
|
42
|
-
assert_equal expected, report
|
18
|
+
should "add nothing" do
|
19
|
+
assert_equal "bare", Jstdutil::RedGreen.wrap_report("bare")
|
43
20
|
end
|
21
|
+
|
44
22
|
end
|
45
23
|
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
- 1
|
8
7
|
- 2
|
9
|
-
|
8
|
+
- 0
|
9
|
+
version: 0.2.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Christian Johansen
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-06-
|
17
|
+
date: 2010-06-14 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -64,6 +64,7 @@ extra_rdoc_files:
|
|
64
64
|
- LICENSE
|
65
65
|
- README.rdoc
|
66
66
|
files:
|
67
|
+
- Changelog
|
67
68
|
- LICENSE
|
68
69
|
- README.rdoc
|
69
70
|
- Rakefile
|
@@ -74,6 +75,8 @@ files:
|
|
74
75
|
- lib/jstdutil.rb
|
75
76
|
- lib/jstdutil/autotest.rb
|
76
77
|
- lib/jstdutil/cli.rb
|
78
|
+
- lib/jstdutil/colorful_html.rb
|
79
|
+
- lib/jstdutil/formatter.rb
|
77
80
|
- lib/jstdutil/hooks.rb
|
78
81
|
- lib/jstdutil/jstestdriver/config.rb
|
79
82
|
- lib/jstdutil/jstestdriver/server.rb
|
@@ -82,6 +85,8 @@ files:
|
|
82
85
|
- lib/jstdutil/test_runner.rb
|
83
86
|
- lib/watchr_script
|
84
87
|
- test/cli_test.rb
|
88
|
+
- test/colorful_html_test.rb
|
89
|
+
- test/formatter_test.rb
|
85
90
|
- test/jstdutil_test.rb
|
86
91
|
- test/jstestdriver_config_test.rb
|
87
92
|
- test/jstestdriver_test.rb
|
@@ -119,6 +124,7 @@ signing_key:
|
|
119
124
|
specification_version: 3
|
120
125
|
summary: Thin wrapper over Google's JsTestDriver that adds colors and autotest
|
121
126
|
test_files:
|
127
|
+
- test/formatter_test.rb
|
122
128
|
- test/jstestdriver_test.rb
|
123
129
|
- test/cli_test.rb
|
124
130
|
- test/test_file_test.rb
|
@@ -126,3 +132,4 @@ test_files:
|
|
126
132
|
- test/test_helper.rb
|
127
133
|
- test/jstdutil_test.rb
|
128
134
|
- test/jstestdriver_config_test.rb
|
135
|
+
- test/colorful_html_test.rb
|