jazz 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -0
- data/README.rdoc +129 -0
- data/bin/jazz +230 -0
- data/doc/jasmine/files.html +460 -0
- data/doc/jasmine/index.html +322 -0
- data/doc/jasmine/symbols/_global_.html +1083 -0
- data/doc/jasmine/symbols/jasmine.Block.html +417 -0
- data/doc/jasmine/symbols/jasmine.Clock.html +678 -0
- data/doc/jasmine/symbols/jasmine.Env.html +1135 -0
- data/doc/jasmine/symbols/jasmine.EnvjsReporter.html +328 -0
- data/doc/jasmine/symbols/jasmine.JsApiReporter.html +822 -0
- data/doc/jasmine/symbols/jasmine.Matchers.html +1106 -0
- data/doc/jasmine/symbols/jasmine.MultiReporter.html +394 -0
- data/doc/jasmine/symbols/jasmine.NestedResults.html +710 -0
- data/doc/jasmine/symbols/jasmine.Reporter.html +574 -0
- data/doc/jasmine/symbols/jasmine.Runner.html +710 -0
- data/doc/jasmine/symbols/jasmine.Spec.html +1372 -0
- data/doc/jasmine/symbols/jasmine.Spy.html +855 -0
- data/doc/jasmine/symbols/jasmine.Suite.html +705 -0
- data/doc/jasmine/symbols/jasmine.XMLReporter.html +328 -0
- data/doc/jasmine/symbols/jasmine.html +1359 -0
- data/doc/jasmine/symbols/jasmine.util.html +535 -0
- data/doc/jasmine/symbols/src/lib_EnvjsReporter.js.html +149 -0
- data/doc/jasmine/symbols/src/lib_TrivialReporter.js.html +127 -0
- data/doc/jasmine/symbols/src/lib_XMLReporter.js.html +210 -0
- data/doc/jasmine/symbols/src/src_Block.js.html +35 -0
- data/doc/jasmine/symbols/src/src_Env.js.html +233 -0
- data/doc/jasmine/symbols/src/src_JsApiReporter.js.html +110 -0
- data/doc/jasmine/symbols/src/src_Matchers.js.html +399 -0
- data/doc/jasmine/symbols/src/src_MultiReporter.js.html +36 -0
- data/doc/jasmine/symbols/src/src_NestedResults.js.html +88 -0
- data/doc/jasmine/symbols/src/src_PrettyPrinter.js.html +128 -0
- data/doc/jasmine/symbols/src/src_Queue.js.html +119 -0
- data/doc/jasmine/symbols/src/src_Reporter.js.html +35 -0
- data/doc/jasmine/symbols/src/src_Reporters.js.html +51 -0
- data/doc/jasmine/symbols/src/src_Runner.js.html +75 -0
- data/doc/jasmine/symbols/src/src_Spec.js.html +228 -0
- data/doc/jasmine/symbols/src/src_Suite.js.html +77 -0
- data/doc/jasmine/symbols/src/src_WaitsBlock.js.html +21 -0
- data/doc/jasmine/symbols/src/src_WaitsForBlock.js.html +45 -0
- data/doc/jasmine/symbols/src/src_base.js.html +566 -0
- data/doc/jasmine/symbols/src/src_mock-timeout.js.html +185 -0
- data/doc/jasmine/symbols/src/src_util.js.html +75 -0
- data/lib/jazz.rb +0 -0
- data/lib/jazz/intro.js +46 -0
- data/lib/jazz/jasmine/EnvjsReporter.js +141 -0
- data/lib/jazz/jasmine/TrivialReporter.js +155 -0
- data/lib/jazz/jasmine/XMLReporter.js +241 -0
- data/lib/jazz/jasmine/consolex.js +28 -0
- data/lib/jazz/jasmine/jasmine-0.10.0.js +2526 -0
- data/lib/jazz/jasmine/jasmine.js +2526 -0
- data/lib/jazz/jasmine/json2.js +478 -0
- data/lib/jazz/options.rb +26 -0
- data/lib/jazz/outro.js +3 -0
- data/lib/jazz/qintro.js +113 -0
- data/lib/jazz/qoutro.js +3 -0
- data/lib/jazz/qunit/qunit.css +17 -0
- data/lib/jazz/qunit/qunit.js +1027 -0
- data/spec/example/hello_world_spec.js +29 -0
- data/spec/example/nested/HelloWorldSpec.js +13 -0
- data/spec/example/nested/SpecHelper.js +1 -0
- data/spec/example/plain_spec.js +8 -0
- data/spec/example/spec_helper.js +1 -0
- data/spec/spec_helper.js +18 -0
- data/spec/spec_runner.js +143 -0
- data/test/jazz_test.rb +7 -0
- data/test/test_helper.rb +10 -0
- data/vendor/jasmine/MIT.LICENSE +20 -0
- data/vendor/jasmine/README.markdown +479 -0
- data/vendor/jasmine/Rakefile +155 -0
- data/vendor/jasmine/Wakefile +68 -0
- data/vendor/jasmine/contrib/ruby/jasmine_runner.rb +334 -0
- data/vendor/jasmine/contrib/ruby/jasmine_spec_builder.rb +153 -0
- data/vendor/jasmine/contrib/ruby/run.html +47 -0
- data/vendor/jasmine/contrib/ruby/spec/jasmine_runner_spec.rb +71 -0
- data/vendor/jasmine/doc/files.html +460 -0
- data/vendor/jasmine/doc/index.html +322 -0
- data/vendor/jasmine/doc/symbols/_global_.html +1083 -0
- data/vendor/jasmine/doc/symbols/jasmine.Block.html +417 -0
- data/vendor/jasmine/doc/symbols/jasmine.Clock.html +678 -0
- data/vendor/jasmine/doc/symbols/jasmine.Env.html +1135 -0
- data/vendor/jasmine/doc/symbols/jasmine.EnvjsReporter.html +328 -0
- data/vendor/jasmine/doc/symbols/jasmine.JsApiReporter.html +822 -0
- data/vendor/jasmine/doc/symbols/jasmine.Matchers.html +1106 -0
- data/vendor/jasmine/doc/symbols/jasmine.MultiReporter.html +394 -0
- data/vendor/jasmine/doc/symbols/jasmine.NestedResults.html +710 -0
- data/vendor/jasmine/doc/symbols/jasmine.Reporter.html +574 -0
- data/vendor/jasmine/doc/symbols/jasmine.Runner.html +710 -0
- data/vendor/jasmine/doc/symbols/jasmine.Spec.html +1372 -0
- data/vendor/jasmine/doc/symbols/jasmine.Spy.html +855 -0
- data/vendor/jasmine/doc/symbols/jasmine.Suite.html +705 -0
- data/vendor/jasmine/doc/symbols/jasmine.XMLReporter.html +328 -0
- data/vendor/jasmine/doc/symbols/jasmine.html +1359 -0
- data/vendor/jasmine/doc/symbols/jasmine.util.html +535 -0
- data/vendor/jasmine/doc/symbols/src/lib_EnvjsReporter.js.html +149 -0
- data/vendor/jasmine/doc/symbols/src/lib_TrivialReporter.js.html +127 -0
- data/vendor/jasmine/doc/symbols/src/lib_XMLReporter.js.html +210 -0
- data/vendor/jasmine/doc/symbols/src/src_Block.js.html +35 -0
- data/vendor/jasmine/doc/symbols/src/src_Env.js.html +233 -0
- data/vendor/jasmine/doc/symbols/src/src_JsApiReporter.js.html +110 -0
- data/vendor/jasmine/doc/symbols/src/src_Matchers.js.html +399 -0
- data/vendor/jasmine/doc/symbols/src/src_MultiReporter.js.html +36 -0
- data/vendor/jasmine/doc/symbols/src/src_NestedResults.js.html +88 -0
- data/vendor/jasmine/doc/symbols/src/src_PrettyPrinter.js.html +128 -0
- data/vendor/jasmine/doc/symbols/src/src_Queue.js.html +119 -0
- data/vendor/jasmine/doc/symbols/src/src_Reporter.js.html +35 -0
- data/vendor/jasmine/doc/symbols/src/src_Reporters.js.html +51 -0
- data/vendor/jasmine/doc/symbols/src/src_Runner.js.html +75 -0
- data/vendor/jasmine/doc/symbols/src/src_Spec.js.html +228 -0
- data/vendor/jasmine/doc/symbols/src/src_Suite.js.html +77 -0
- data/vendor/jasmine/doc/symbols/src/src_WaitsBlock.js.html +21 -0
- data/vendor/jasmine/doc/symbols/src/src_WaitsForBlock.js.html +45 -0
- data/vendor/jasmine/doc/symbols/src/src_base.js.html +566 -0
- data/vendor/jasmine/doc/symbols/src/src_mock-timeout.js.html +185 -0
- data/vendor/jasmine/doc/symbols/src/src_util.js.html +75 -0
- data/vendor/jasmine/examples/html/example_suite.html +27 -0
- data/vendor/jasmine/examples/html/spec/example_suite.js +11 -0
- data/vendor/jasmine/examples/ruby/Rakefile +33 -0
- data/vendor/jasmine/examples/ruby/spec/example/example_spec.js +11 -0
- data/vendor/jasmine/examples/ruby/spec/jasmine_helper.rb +41 -0
- data/vendor/jasmine/examples/ruby/spec/jasmine_spec.rb +31 -0
- data/vendor/jasmine/examples/ruby/spec/saucelabs.yml +24 -0
- data/vendor/jasmine/geminstaller.yml +23 -0
- data/vendor/jasmine/images/fail-16.png +0 -0
- data/vendor/jasmine/images/fail.png +0 -0
- data/vendor/jasmine/images/go-16.png +0 -0
- data/vendor/jasmine/images/go.png +0 -0
- data/vendor/jasmine/images/pending-16.png +0 -0
- data/vendor/jasmine/images/pending.png +0 -0
- data/vendor/jasmine/images/question-bk.png +0 -0
- data/vendor/jasmine/images/questionbk-16.png +0 -0
- data/vendor/jasmine/images/spinner.gif +0 -0
- data/vendor/jasmine/lib/EnvjsReporter.js +141 -0
- data/vendor/jasmine/lib/TrivialReporter.js +155 -0
- data/vendor/jasmine/lib/XMLReporter.js +241 -0
- data/vendor/jasmine/lib/consolex.js +28 -0
- data/vendor/jasmine/lib/jasmine-0.10.0.js +2526 -0
- data/vendor/jasmine/lib/jasmine.css +86 -0
- data/vendor/jasmine/lib/json2.js +478 -0
- data/vendor/jasmine/spec/jasmine_helper.rb +44 -0
- data/vendor/jasmine/spec/jasmine_spec.rb +31 -0
- data/vendor/jasmine/spec/runner.html +43 -0
- data/vendor/jasmine/spec/runner.js +78 -0
- data/vendor/jasmine/spec/saucelabs.yml +24 -0
- data/vendor/jasmine/spec/suites/EnvSpec.js +71 -0
- data/vendor/jasmine/spec/suites/ExceptionsSpec.js +107 -0
- data/vendor/jasmine/spec/suites/JsApiReporterSpec.js +82 -0
- data/vendor/jasmine/spec/suites/MatchersSpec.js +589 -0
- data/vendor/jasmine/spec/suites/MockClockSpec.js +34 -0
- data/vendor/jasmine/spec/suites/MultiReporterSpec.js +30 -0
- data/vendor/jasmine/spec/suites/NestedResultsSpec.js +54 -0
- data/vendor/jasmine/spec/suites/PrettyPrintSpec.js +93 -0
- data/vendor/jasmine/spec/suites/QueueSpec.js +23 -0
- data/vendor/jasmine/spec/suites/ReporterSpec.js +60 -0
- data/vendor/jasmine/spec/suites/RunnerSpec.js +258 -0
- data/vendor/jasmine/spec/suites/SpecRunningSpec.js +1117 -0
- data/vendor/jasmine/spec/suites/SpecSpec.js +110 -0
- data/vendor/jasmine/spec/suites/SpySpec.js +187 -0
- data/vendor/jasmine/spec/suites/SuiteSpec.js +101 -0
- data/vendor/jasmine/spec/suites/TrivialReporterSpec.js +140 -0
- data/vendor/jasmine/spec/suites/UtilSpec.js +23 -0
- data/vendor/jasmine/src/Block.js +34 -0
- data/vendor/jasmine/src/Env.js +236 -0
- data/vendor/jasmine/src/JsApiReporter.js +103 -0
- data/vendor/jasmine/src/Matchers.js +326 -0
- data/vendor/jasmine/src/MultiReporter.js +28 -0
- data/vendor/jasmine/src/NestedResults.js +99 -0
- data/vendor/jasmine/src/PrettyPrinter.js +122 -0
- data/vendor/jasmine/src/Queue.js +210 -0
- data/vendor/jasmine/src/Reporter.js +27 -0
- data/vendor/jasmine/src/Reporters.js +43 -0
- data/vendor/jasmine/src/Runner.js +68 -0
- data/vendor/jasmine/src/Spec.js +254 -0
- data/vendor/jasmine/src/Suite.js +70 -0
- data/vendor/jasmine/src/WaitsBlock.js +13 -0
- data/vendor/jasmine/src/WaitsForBlock.js +38 -0
- data/vendor/jasmine/src/base.js +604 -0
- data/vendor/jasmine/src/mock-timeout.js +177 -0
- data/vendor/jasmine/src/util.js +67 -0
- data/vendor/jasmine/src/version.json +5 -0
- metadata +292 -0
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 Steven Parkes
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
= jazz
|
2
|
+
|
3
|
+
Jazz provides support for running JavaScript specs written using
|
4
|
+
frameworks such as Jasmine under env.js. It includes support for
|
5
|
+
running via wake.
|
6
|
+
|
7
|
+
Discussion at http://groups.google.com/group/jazz-talk or #jazz-talk at freenode.
|
8
|
+
|
9
|
+
== Install
|
10
|
+
|
11
|
+
You can install the gem via <tt>gem install smparkes-jazz</tt>. If
|
12
|
+
you want to install from github (http://github.com/smparkes/jazz),
|
13
|
+
you'll need to checkout the Jasmine submodule (<tt>git submodule
|
14
|
+
update --init</tt>) and also need to make sure you have the
|
15
|
+
prerequisites listed in the gemspec in the Rakefile. <tt>rake
|
16
|
+
gemspec</tt> will then build and copy the necessary parts of Jasmine.
|
17
|
+
|
18
|
+
If you want to run the examples/tests, you'll need jQuery. The <tt>git
|
19
|
+
submodule update --init</tt> command will have brought in jQuery, but
|
20
|
+
you'll need to build it: <tt>cd vendor/jquery && make</tt>.
|
21
|
+
|
22
|
+
Even if you install the gem, you may want to get the github files to
|
23
|
+
see and run the examples.
|
24
|
+
|
25
|
+
== Use
|
26
|
+
|
27
|
+
From the root of a project, i.e., the parent of the <tt>spec</tt>
|
28
|
+
directory, you can use the <tt>jazz</tt> command as you would the
|
29
|
+
rspec <tt>spec</tt> command, e.g.,
|
30
|
+
|
31
|
+
jazz spec/foo_spec.js spec/bar_spec.js
|
32
|
+
|
33
|
+
You can also execute HTML specs via jazz:
|
34
|
+
|
35
|
+
jazz spec/foo_spec.html
|
36
|
+
|
37
|
+
or even normal pages, that have the proper hooks to run as examples
|
38
|
+
(see below).
|
39
|
+
|
40
|
+
HTML files must be valid XML, i.e., XHTML, at this time.
|
41
|
+
|
42
|
+
The HTML fixture must load the necessary test files. Any number of
|
43
|
+
fixtures can be passed to the <tt>jazz</tt> command.
|
44
|
+
|
45
|
+
jazz uses env.js to run the tests, feeding it your HTML and
|
46
|
+
JavaScript, plus the necessary JavaScript and controls to make the tests
|
47
|
+
run correctly. You can see the entire <tt>envjsrb</tt> command by
|
48
|
+
passing <tt>jazz</tt> the <tt>-v</tt> flag.
|
49
|
+
|
50
|
+
The Jasmine tests are configured to report results in streaming XML
|
51
|
+
(JUnit format, more or less), which <tt>jazz</tt> turns into the
|
52
|
+
familiar rspec format. The <tt>--xml</tt> flag
|
53
|
+
causes <tt>jazz</tt> to display the raw XML output.
|
54
|
+
|
55
|
+
To run all the tests in the <tt>spec</tt> directory repeatedly you can
|
56
|
+
use wake:
|
57
|
+
|
58
|
+
rake test
|
59
|
+
|
60
|
+
or
|
61
|
+
|
62
|
+
wake
|
63
|
+
|
64
|
+
See jazz's <tt>Wakefile</tt> file and the
|
65
|
+
discussion on examples below.
|
66
|
+
|
67
|
+
You can also try using <tt>autojaz</tt> as
|
68
|
+
you would use <tt>autospec</tt>:
|
69
|
+
|
70
|
+
autojaz
|
71
|
+
|
72
|
+
You'll need to install the ZenTest gem if you don't have it installed;
|
73
|
+
<tt>jazz</tt> can be used without ZenTest installed, but
|
74
|
+
<tt>autojaz</tt> cannot be. Note that <tt>autojaz</tt> may be
|
75
|
+
deprecated in favor of <tt>wake</tt>.
|
76
|
+
|
77
|
+
Screen shot at http://www.scrnshots.com/users/smparkes/screenshots/206033
|
78
|
+
|
79
|
+
== Examples
|
80
|
+
|
81
|
+
There are examples in <tt>examples/*</tt> and <tt>spec/examples/*</tt>. You can run the
|
82
|
+
tests with <tt>rake test</tt> which will run wake against the Wakefile.
|
83
|
+
(Wake as a runner will probably replace
|
84
|
+
autojaz.) You'll need the wake gem.
|
85
|
+
|
86
|
+
Running wake will run all the
|
87
|
+
tests and then watch the file system for changes. When it sees a change,
|
88
|
+
it reruns the test. It knows how to find the HTML fixtures for specs
|
89
|
+
where they exist in the right place, or it just runs the JavaScript
|
90
|
+
spec itself. An example of the former is the pair
|
91
|
+
<tt>example/hello_world.html</tt> and
|
92
|
+
<tt>spec/example/hello_world_spec.js</tt>: jazz will reload the HTML if either file is changed.
|
93
|
+
An example of the latter
|
94
|
+
is <tt>spec/example/plain_spec.js</tt>.
|
95
|
+
|
96
|
+
You can also load the individual HTML files in the browser to run the
|
97
|
+
tests there. For example, on a Mac, <tt>open
|
98
|
+
example/hello_world.html</tt>. (The idea is that for production, the
|
99
|
+
spec helper files are changed to not load the tests: that should be
|
100
|
+
the only change necessary. Or the <tt><script></tt> tag could be
|
101
|
+
ripped out.) Note that to run the tests from the filesystem in Firefox, you'll
|
102
|
+
need to set the <tt>security.fileuri.strict_origin_policy</tt> option
|
103
|
+
to true.
|
104
|
+
|
105
|
+
== Recent Changes
|
106
|
+
|
107
|
+
1. Pass dependence flag to envjsrb to support wake dependences
|
108
|
+
|
109
|
+
1. Add wake support
|
110
|
+
|
111
|
+
1. Add example
|
112
|
+
|
113
|
+
1. Support multiple fixtures on the <tt>jazz</tt> command. (Actually, this is entirely due to <tt>envjsrb</tt> supporting multiple fixtures. You need a recent build from github or an smparkes-envjs gem version of at least 0.0.5.)
|
114
|
+
|
115
|
+
== Things to do
|
116
|
+
|
117
|
+
1. Complete and test support for loading against an HTTP server.
|
118
|
+
|
119
|
+
1. Focus on failing tests until fixed, a la autotest.
|
120
|
+
|
121
|
+
1. Extend to more frameworks, e.g., qunit. There's little here that's actually Jasmine-specific.
|
122
|
+
|
123
|
+
1. Including a missing script should be an error
|
124
|
+
|
125
|
+
1. Make work in interactive mode (requires intro/outro/out:blank intergration with envjsrb)
|
126
|
+
|
127
|
+
== Copyright
|
128
|
+
|
129
|
+
Copyright (c) 2009 Steven Parkes. See LICENSE for details.
|
data/bin/jazz
ADDED
@@ -0,0 +1,230 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$VERBOSE = true
|
4
|
+
|
5
|
+
require 'jazz/options'
|
6
|
+
|
7
|
+
ENV["JAZZ_JS_PATH"] =
|
8
|
+
JAZ_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'jazz'))
|
9
|
+
|
10
|
+
intro = File.join(JAZ_DIR, "intro.js")
|
11
|
+
outro = File.join(JAZ_DIR, "outro.js")
|
12
|
+
|
13
|
+
if $jazz_qunit
|
14
|
+
intro = File.join(JAZ_DIR, "qintro.js")
|
15
|
+
outro = File.join(JAZ_DIR, "qoutro.js")
|
16
|
+
end
|
17
|
+
|
18
|
+
args = [ "envjsrb" ]
|
19
|
+
if $jazz_deps
|
20
|
+
args += [ "--deps", $jazz_deps ]
|
21
|
+
end
|
22
|
+
args << intro
|
23
|
+
|
24
|
+
introd = true
|
25
|
+
outrod = true
|
26
|
+
|
27
|
+
ARGV.each do |f|
|
28
|
+
|
29
|
+
if f =~ /\.x?html?$/ || f =~ %r(^https?://)
|
30
|
+
if introd && !outrod
|
31
|
+
args << outro
|
32
|
+
args << "about:blank"
|
33
|
+
outrod = true
|
34
|
+
introd = false
|
35
|
+
end
|
36
|
+
if !introd
|
37
|
+
args << intro
|
38
|
+
end
|
39
|
+
args << f
|
40
|
+
introd = true
|
41
|
+
outrod = false
|
42
|
+
elsif f == "about:blank"
|
43
|
+
if introd && !outrod
|
44
|
+
args << outro
|
45
|
+
outrod = true
|
46
|
+
introd = false
|
47
|
+
end
|
48
|
+
args << f
|
49
|
+
else
|
50
|
+
args << f
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
args << outro
|
56
|
+
|
57
|
+
cmd = args.join(" ")
|
58
|
+
|
59
|
+
puts cmd if $jazz_verbose
|
60
|
+
|
61
|
+
require 'eventmachine'
|
62
|
+
require 'nokogiri'
|
63
|
+
|
64
|
+
class Restart < Exception; end
|
65
|
+
|
66
|
+
def colour(text, colour_code)
|
67
|
+
# return text unless ENV['RSPEC_COLOR'] || (colour? & (autospec? || output_to_tty?))
|
68
|
+
"#{colour_code}#{text}\e[0m"
|
69
|
+
end
|
70
|
+
|
71
|
+
def green(text); colour(text, "\e[32m"); end
|
72
|
+
def red(text); colour(text, "\e[31m"); end
|
73
|
+
def yellow(text); colour(text, "\e[33m"); end
|
74
|
+
def blue(text); colour(text, "\e[34m"); end
|
75
|
+
|
76
|
+
$spec_info = {}
|
77
|
+
$spec_info[:specs] = []
|
78
|
+
$spec_info[:failures] = []
|
79
|
+
$spec_info[:pending] = []
|
80
|
+
|
81
|
+
class SAX < Nokogiri::XML::SAX::Document
|
82
|
+
|
83
|
+
def start_element name, attrs
|
84
|
+
# p attrs
|
85
|
+
attrs = Hash[*attrs]
|
86
|
+
# p attrs
|
87
|
+
case name
|
88
|
+
when "testsuites";
|
89
|
+
when "testsuite";
|
90
|
+
@testsuite_name = attrs["name"]
|
91
|
+
if @testsuite_pending = ( attrs["skipped"] == "true" )
|
92
|
+
$spec_info[:specs] << (tc = {})
|
93
|
+
tc[:name] = @testsuite_name
|
94
|
+
$spec_info[:pending] << $spec_info[:specs].last
|
95
|
+
end
|
96
|
+
when "testcase";
|
97
|
+
$spec_info[:specs] << (tc = {})
|
98
|
+
tc[:name] = @testsuite_name + " : " + attrs["name"]
|
99
|
+
@testcase_failed = false
|
100
|
+
when "failure";
|
101
|
+
$spec_info[:failures] << (tc = $spec_info[:specs].last)
|
102
|
+
tc[:message] = attrs["message"]
|
103
|
+
@testcase_failed = true
|
104
|
+
else; raise "hell: #{name}"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def cdata_block string
|
109
|
+
if @testcase_failed
|
110
|
+
$spec_info[:failures].last[:stack] ||= ""
|
111
|
+
$spec_info[:failures].last[:stack] << string
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
def end_element name
|
116
|
+
case name
|
117
|
+
when "testsuites";
|
118
|
+
raise Restart
|
119
|
+
when "testsuite";
|
120
|
+
if !$jazz_xml
|
121
|
+
if @testsuite_pending
|
122
|
+
char = yellow("*")
|
123
|
+
print char
|
124
|
+
$stdout.flush
|
125
|
+
end
|
126
|
+
end
|
127
|
+
when "testcase";
|
128
|
+
if !$jazz_xml
|
129
|
+
char = nil
|
130
|
+
if @testcase_failed
|
131
|
+
char = red("F")
|
132
|
+
else
|
133
|
+
char = green(".")
|
134
|
+
end
|
135
|
+
print char
|
136
|
+
$stdout.flush
|
137
|
+
end
|
138
|
+
when "failure";
|
139
|
+
else; raise "hell: #{name}"
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
$failed_processes = 0
|
145
|
+
|
146
|
+
module WriteToNokogiri
|
147
|
+
def post_init
|
148
|
+
@parser = Nokogiri::XML::SAX::PushParser.new( SAX.new )
|
149
|
+
end
|
150
|
+
def receive_data data
|
151
|
+
begin
|
152
|
+
if $jazz_xml
|
153
|
+
# $stderr.print data
|
154
|
+
puts data
|
155
|
+
$stdout.flush
|
156
|
+
end
|
157
|
+
@parser << data
|
158
|
+
rescue Restart
|
159
|
+
@parser = Nokogiri::XML::SAX::PushParser.new( SAX.new )
|
160
|
+
rescue Exception => e
|
161
|
+
$stderr.puts "Parser raised #{e} on #{data}"
|
162
|
+
exit 1
|
163
|
+
end
|
164
|
+
end
|
165
|
+
def unbind
|
166
|
+
$failed_processes += 1 if get_status.exitstatus &&
|
167
|
+
get_status.exitstatus > 0
|
168
|
+
EM.stop
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
date = Time.now
|
173
|
+
failures = nil
|
174
|
+
examples = nil
|
175
|
+
pending = nil
|
176
|
+
|
177
|
+
EM.run do
|
178
|
+
EM.popen cmd, WriteToNokogiri
|
179
|
+
end
|
180
|
+
|
181
|
+
puts
|
182
|
+
puts
|
183
|
+
|
184
|
+
if !$jazz_xml
|
185
|
+
if $spec_info[:pending].length > 0
|
186
|
+
puts "Pending:"
|
187
|
+
$spec_info[:pending].each do |pending|
|
188
|
+
puts
|
189
|
+
puts yellow(pending[:name])
|
190
|
+
end
|
191
|
+
puts "\n"
|
192
|
+
end
|
193
|
+
$spec_info[:failures].each_with_index do |failure,i|
|
194
|
+
print i+1,")\n"
|
195
|
+
print red("#{failure[:name]} FAILED\n")
|
196
|
+
print red(failure[:message]),"\n"
|
197
|
+
# double check, but is there really anything in the jaz stack that's useful?
|
198
|
+
stack = failure[:stack]
|
199
|
+
stack and ( stack = stack.split "\n" )
|
200
|
+
stack and stack.each do |line|
|
201
|
+
if line =~ %r(/jasmine.js:\d+) || line =~ %r(/jasmine/src/.*\.js:\d+)
|
202
|
+
break
|
203
|
+
end
|
204
|
+
print line, "\n"
|
205
|
+
end
|
206
|
+
# p stack
|
207
|
+
# print failure[:stack],"\n"
|
208
|
+
end
|
209
|
+
puts "Finished in #{Time.now - date} seconds"
|
210
|
+
puts
|
211
|
+
examples = $spec_info[:specs].length
|
212
|
+
# require 'pp'
|
213
|
+
# pp $spec_info[:specs]
|
214
|
+
failures = $spec_info[:failures].length
|
215
|
+
pending = $spec_info[:pending].length
|
216
|
+
if $failed_processes > 0
|
217
|
+
examples += $failed_processes
|
218
|
+
failures += $failed_processes
|
219
|
+
end
|
220
|
+
msg = "#{examples} examples, #{failures} failures, #{pending} pending"
|
221
|
+
if failures > 0
|
222
|
+
msg = red(msg)
|
223
|
+
elsif pending > 0
|
224
|
+
msg = yellow(msg)
|
225
|
+
else
|
226
|
+
msg = green(msg)
|
227
|
+
end
|
228
|
+
puts msg
|
229
|
+
end
|
230
|
+
exit ( !failures.nil? && failures > 0 ) ? 1 : 0
|
@@ -0,0 +1,460 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8"" />
|
6
|
+
|
7
|
+
<title>JsDoc Reference - File Index</title>
|
8
|
+
<meta name="generator" content="JsDoc Toolkit" />
|
9
|
+
|
10
|
+
<style type="text/css">
|
11
|
+
/* default.css */
|
12
|
+
body
|
13
|
+
{
|
14
|
+
font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
|
15
|
+
width: 800px;
|
16
|
+
}
|
17
|
+
|
18
|
+
.header
|
19
|
+
{
|
20
|
+
clear: both;
|
21
|
+
background-color: #ccc;
|
22
|
+
padding: 8px;
|
23
|
+
}
|
24
|
+
|
25
|
+
h1
|
26
|
+
{
|
27
|
+
font-size: 150%;
|
28
|
+
font-weight: bold;
|
29
|
+
padding: 0;
|
30
|
+
margin: 1em 0 0 .3em;
|
31
|
+
}
|
32
|
+
|
33
|
+
hr
|
34
|
+
{
|
35
|
+
border: none 0;
|
36
|
+
border-top: 1px solid #7F8FB1;
|
37
|
+
height: 1px;
|
38
|
+
}
|
39
|
+
|
40
|
+
pre.code
|
41
|
+
{
|
42
|
+
display: block;
|
43
|
+
padding: 8px;
|
44
|
+
border: 1px dashed #ccc;
|
45
|
+
}
|
46
|
+
|
47
|
+
#index
|
48
|
+
{
|
49
|
+
margin-top: 24px;
|
50
|
+
float: left;
|
51
|
+
width: 160px;
|
52
|
+
position: absolute;
|
53
|
+
left: 8px;
|
54
|
+
background-color: #F3F3F3;
|
55
|
+
padding: 8px;
|
56
|
+
}
|
57
|
+
|
58
|
+
#content
|
59
|
+
{
|
60
|
+
margin-left: 190px;
|
61
|
+
width: 600px;
|
62
|
+
}
|
63
|
+
|
64
|
+
.classList
|
65
|
+
{
|
66
|
+
list-style-type: none;
|
67
|
+
padding: 0;
|
68
|
+
margin: 0 0 0 8px;
|
69
|
+
font-family: arial, sans-serif;
|
70
|
+
font-size: 1em;
|
71
|
+
overflow: auto;
|
72
|
+
}
|
73
|
+
|
74
|
+
.classList li
|
75
|
+
{
|
76
|
+
padding: 0;
|
77
|
+
margin: 0 0 8px 0;
|
78
|
+
}
|
79
|
+
|
80
|
+
.summaryTable { width: 100%; }
|
81
|
+
|
82
|
+
h1.classTitle
|
83
|
+
{
|
84
|
+
font-size:170%;
|
85
|
+
line-height:130%;
|
86
|
+
}
|
87
|
+
|
88
|
+
h2 { font-size: 110%; }
|
89
|
+
caption, div.sectionTitle
|
90
|
+
{
|
91
|
+
background-color: #7F8FB1;
|
92
|
+
color: #fff;
|
93
|
+
font-size:130%;
|
94
|
+
text-align: left;
|
95
|
+
padding: 2px 6px 2px 6px;
|
96
|
+
border: 1px #7F8FB1 solid;
|
97
|
+
}
|
98
|
+
|
99
|
+
div.sectionTitle { margin-bottom: 8px; }
|
100
|
+
.summaryTable thead { display: none; }
|
101
|
+
|
102
|
+
.summaryTable td
|
103
|
+
{
|
104
|
+
vertical-align: top;
|
105
|
+
padding: 4px;
|
106
|
+
border-bottom: 1px #7F8FB1 solid;
|
107
|
+
border-right: 1px #7F8FB1 solid;
|
108
|
+
}
|
109
|
+
|
110
|
+
/*col#summaryAttributes {}*/
|
111
|
+
.summaryTable td.attributes
|
112
|
+
{
|
113
|
+
border-left: 1px #7F8FB1 solid;
|
114
|
+
width: 140px;
|
115
|
+
text-align: right;
|
116
|
+
}
|
117
|
+
|
118
|
+
td.attributes, .fixedFont
|
119
|
+
{
|
120
|
+
line-height: 15px;
|
121
|
+
color: #002EBE;
|
122
|
+
font-family: "Courier New",Courier,monospace;
|
123
|
+
font-size: 13px;
|
124
|
+
}
|
125
|
+
|
126
|
+
.summaryTable td.nameDescription
|
127
|
+
{
|
128
|
+
text-align: left;
|
129
|
+
font-size: 13px;
|
130
|
+
line-height: 15px;
|
131
|
+
}
|
132
|
+
|
133
|
+
.summaryTable td.nameDescription, .description
|
134
|
+
{
|
135
|
+
line-height: 15px;
|
136
|
+
padding: 4px;
|
137
|
+
padding-left: 4px;
|
138
|
+
}
|
139
|
+
|
140
|
+
.summaryTable { margin-bottom: 8px; }
|
141
|
+
|
142
|
+
ul.inheritsList
|
143
|
+
{
|
144
|
+
list-style: square;
|
145
|
+
margin-left: 20px;
|
146
|
+
padding-left: 0;
|
147
|
+
}
|
148
|
+
|
149
|
+
.detailList {
|
150
|
+
margin-left: 20px;
|
151
|
+
line-height: 15px;
|
152
|
+
}
|
153
|
+
.detailList dt { margin-left: 20px; }
|
154
|
+
|
155
|
+
.detailList .heading
|
156
|
+
{
|
157
|
+
font-weight: bold;
|
158
|
+
padding-bottom: 6px;
|
159
|
+
margin-left: 0;
|
160
|
+
}
|
161
|
+
|
162
|
+
.light, td.attributes, .light a:link, .light a:visited
|
163
|
+
{
|
164
|
+
color: #777;
|
165
|
+
font-style: italic;
|
166
|
+
}
|
167
|
+
|
168
|
+
.fineprint
|
169
|
+
{
|
170
|
+
text-align: right;
|
171
|
+
font-size: 10px;
|
172
|
+
}
|
173
|
+
</style>
|
174
|
+
</head>
|
175
|
+
|
176
|
+
<body>
|
177
|
+
<div id="header">
|
178
|
+
</div>
|
179
|
+
|
180
|
+
<div id="index">
|
181
|
+
<div align="center"><a href="index.html">Class Index</a>
|
182
|
+
| <a href="files.html">File Index</a></div>
|
183
|
+
<hr />
|
184
|
+
<h2>Classes</h2>
|
185
|
+
<ul class="classList">
|
186
|
+
|
187
|
+
<li><i><a href="symbols/_global_.html">_global_</a></i></li>
|
188
|
+
|
189
|
+
<li><a href="symbols/jasmine.html">jasmine</a></li>
|
190
|
+
|
191
|
+
<li><a href="symbols/jasmine.Block.html">jasmine.Block</a></li>
|
192
|
+
|
193
|
+
<li><a href="symbols/jasmine.Clock.html">jasmine.Clock</a></li>
|
194
|
+
|
195
|
+
<li><a href="symbols/jasmine.Env.html">jasmine.Env</a></li>
|
196
|
+
|
197
|
+
<li><a href="symbols/jasmine.JsApiReporter.html">jasmine.JsApiReporter</a></li>
|
198
|
+
|
199
|
+
<li><a href="symbols/jasmine.Matchers.html">jasmine.Matchers</a></li>
|
200
|
+
|
201
|
+
<li><a href="symbols/jasmine.MultiReporter.html">jasmine.MultiReporter</a></li>
|
202
|
+
|
203
|
+
<li><a href="symbols/jasmine.NestedResults.html">jasmine.NestedResults</a></li>
|
204
|
+
|
205
|
+
<li><a href="symbols/jasmine.Reporter.html">jasmine.Reporter</a></li>
|
206
|
+
|
207
|
+
<li><a href="symbols/jasmine.Runner.html">jasmine.Runner</a></li>
|
208
|
+
|
209
|
+
<li><a href="symbols/jasmine.Spec.html">jasmine.Spec</a></li>
|
210
|
+
|
211
|
+
<li><a href="symbols/jasmine.Spy.html">jasmine.Spy</a></li>
|
212
|
+
|
213
|
+
<li><a href="symbols/jasmine.Suite.html">jasmine.Suite</a></li>
|
214
|
+
|
215
|
+
<li><a href="symbols/jasmine.util.html">jasmine.util</a></li>
|
216
|
+
|
217
|
+
</ul>
|
218
|
+
<hr />
|
219
|
+
</div>
|
220
|
+
|
221
|
+
<div id="content">
|
222
|
+
<h1 class="classTitle">File Index</h1>
|
223
|
+
|
224
|
+
|
225
|
+
<div>
|
226
|
+
<h2><a href="symbols/src/lib_TrivialReporter.js.html">lib/TrivialReporter.js</a></h2>
|
227
|
+
|
228
|
+
<dl>
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
</dl>
|
234
|
+
</div>
|
235
|
+
<hr />
|
236
|
+
|
237
|
+
<div>
|
238
|
+
<h2><a href="symbols/src/src_base.js.html">src/base.js</a></h2>
|
239
|
+
|
240
|
+
<dl>
|
241
|
+
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
</dl>
|
246
|
+
</div>
|
247
|
+
<hr />
|
248
|
+
|
249
|
+
<div>
|
250
|
+
<h2><a href="symbols/src/src_Block.js.html">src/Block.js</a></h2>
|
251
|
+
|
252
|
+
<dl>
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
</dl>
|
258
|
+
</div>
|
259
|
+
<hr />
|
260
|
+
|
261
|
+
<div>
|
262
|
+
<h2><a href="symbols/src/src_Env.js.html">src/Env.js</a></h2>
|
263
|
+
|
264
|
+
<dl>
|
265
|
+
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
</dl>
|
270
|
+
</div>
|
271
|
+
<hr />
|
272
|
+
|
273
|
+
<div>
|
274
|
+
<h2><a href="symbols/src/src_JsApiReporter.js.html">src/JsApiReporter.js</a></h2>
|
275
|
+
|
276
|
+
<dl>
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
</dl>
|
282
|
+
</div>
|
283
|
+
<hr />
|
284
|
+
|
285
|
+
<div>
|
286
|
+
<h2><a href="symbols/src/src_Matchers.js.html">src/Matchers.js</a></h2>
|
287
|
+
|
288
|
+
<dl>
|
289
|
+
|
290
|
+
|
291
|
+
|
292
|
+
|
293
|
+
</dl>
|
294
|
+
</div>
|
295
|
+
<hr />
|
296
|
+
|
297
|
+
<div>
|
298
|
+
<h2><a href="symbols/src/src_mock-timeout.js.html">src/mock-timeout.js</a></h2>
|
299
|
+
|
300
|
+
<dl>
|
301
|
+
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
</dl>
|
306
|
+
</div>
|
307
|
+
<hr />
|
308
|
+
|
309
|
+
<div>
|
310
|
+
<h2><a href="symbols/src/src_MultiReporter.js.html">src/MultiReporter.js</a></h2>
|
311
|
+
|
312
|
+
<dl>
|
313
|
+
|
314
|
+
|
315
|
+
|
316
|
+
|
317
|
+
</dl>
|
318
|
+
</div>
|
319
|
+
<hr />
|
320
|
+
|
321
|
+
<div>
|
322
|
+
<h2><a href="symbols/src/src_NestedResults.js.html">src/NestedResults.js</a></h2>
|
323
|
+
|
324
|
+
<dl>
|
325
|
+
|
326
|
+
|
327
|
+
|
328
|
+
|
329
|
+
</dl>
|
330
|
+
</div>
|
331
|
+
<hr />
|
332
|
+
|
333
|
+
<div>
|
334
|
+
<h2><a href="symbols/src/src_PrettyPrinter.js.html">src/PrettyPrinter.js</a></h2>
|
335
|
+
|
336
|
+
<dl>
|
337
|
+
|
338
|
+
|
339
|
+
|
340
|
+
|
341
|
+
</dl>
|
342
|
+
</div>
|
343
|
+
<hr />
|
344
|
+
|
345
|
+
<div>
|
346
|
+
<h2><a href="symbols/src/src_Queue.js.html">src/Queue.js</a></h2>
|
347
|
+
|
348
|
+
<dl>
|
349
|
+
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
</dl>
|
354
|
+
</div>
|
355
|
+
<hr />
|
356
|
+
|
357
|
+
<div>
|
358
|
+
<h2><a href="symbols/src/src_Reporter.js.html">src/Reporter.js</a></h2>
|
359
|
+
|
360
|
+
<dl>
|
361
|
+
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
</dl>
|
366
|
+
</div>
|
367
|
+
<hr />
|
368
|
+
|
369
|
+
<div>
|
370
|
+
<h2><a href="symbols/src/src_Reporters.js.html">src/Reporters.js</a></h2>
|
371
|
+
|
372
|
+
<dl>
|
373
|
+
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
</dl>
|
378
|
+
</div>
|
379
|
+
<hr />
|
380
|
+
|
381
|
+
<div>
|
382
|
+
<h2><a href="symbols/src/src_Runner.js.html">src/Runner.js</a></h2>
|
383
|
+
|
384
|
+
<dl>
|
385
|
+
|
386
|
+
|
387
|
+
|
388
|
+
|
389
|
+
</dl>
|
390
|
+
</div>
|
391
|
+
<hr />
|
392
|
+
|
393
|
+
<div>
|
394
|
+
<h2><a href="symbols/src/src_Spec.js.html">src/Spec.js</a></h2>
|
395
|
+
|
396
|
+
<dl>
|
397
|
+
|
398
|
+
|
399
|
+
|
400
|
+
|
401
|
+
</dl>
|
402
|
+
</div>
|
403
|
+
<hr />
|
404
|
+
|
405
|
+
<div>
|
406
|
+
<h2><a href="symbols/src/src_Suite.js.html">src/Suite.js</a></h2>
|
407
|
+
|
408
|
+
<dl>
|
409
|
+
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
</dl>
|
414
|
+
</div>
|
415
|
+
<hr />
|
416
|
+
|
417
|
+
<div>
|
418
|
+
<h2><a href="symbols/src/src_util.js.html">src/util.js</a></h2>
|
419
|
+
|
420
|
+
<dl>
|
421
|
+
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
</dl>
|
426
|
+
</div>
|
427
|
+
<hr />
|
428
|
+
|
429
|
+
<div>
|
430
|
+
<h2><a href="symbols/src/src_WaitsBlock.js.html">src/WaitsBlock.js</a></h2>
|
431
|
+
|
432
|
+
<dl>
|
433
|
+
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
</dl>
|
438
|
+
</div>
|
439
|
+
<hr />
|
440
|
+
|
441
|
+
<div>
|
442
|
+
<h2><a href="symbols/src/src_WaitsForBlock.js.html">src/WaitsForBlock.js</a></h2>
|
443
|
+
|
444
|
+
<dl>
|
445
|
+
|
446
|
+
|
447
|
+
|
448
|
+
|
449
|
+
</dl>
|
450
|
+
</div>
|
451
|
+
<hr />
|
452
|
+
|
453
|
+
|
454
|
+
</div>
|
455
|
+
<div class="fineprint" style="clear:both">
|
456
|
+
|
457
|
+
Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.1.0 on Tue Nov 24 2009 15:21:26 GMT-0800 (PST)
|
458
|
+
</div>
|
459
|
+
</body>
|
460
|
+
</html>
|