jasmine 1.0.2.1 → 1.1.0.rc2
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/.gitignore +1 -0
- data/Gemfile +0 -3
- data/README.markdown +7 -1
- data/Rakefile +10 -24
- data/generators/jasmine/templates/jasmine-example/SpecRunner.html +40 -13
- data/generators/jasmine/templates/jasmine-example/spec/SpecHelper.js +3 -3
- data/jasmine.gemspec +18 -8
- data/lib/generators/jasmine/templates/lib/tasks/jasmine.rake +8 -2
- data/lib/jasmine/base.rb +9 -6
- data/lib/jasmine/command_line_tool.rb +1 -1
- data/lib/jasmine/firebug/firebug-1.6.2.xpi +0 -0
- data/lib/jasmine/firebug/firebug-1.7.0.xpi +0 -0
- data/lib/jasmine/firebug/firebug-license.txt +30 -0
- data/lib/jasmine/firebug/firebug.rb +30 -0
- data/lib/jasmine/selenium_driver.rb +8 -2
- data/lib/jasmine/server.rb +4 -7
- data/lib/jasmine/tasks/jasmine.rake +15 -6
- data/lib/jasmine/version.rb +1 -1
- data/spec/fixture/Rakefile +4 -0
- data/spec/fixture/spec/example_spec.js +5 -0
- data/spec/fixture/src/example.js +3 -0
- data/spec/jasmine_command_line_tool_rakeless_spec.rb +20 -0
- data/spec/jasmine_rails2_spec.rb +1 -1
- data/spec/jasmine_self_test_config.rb +6 -2
- data/spec/jasmine_self_test_spec.rb +0 -1
- data/spec/server_spec.rb +12 -11
- metadata +39 -92
- data/.gitmodules +0 -3
- data/jasmine/Gemfile +0 -6
- data/jasmine/HowToRelease.markdown +0 -29
- data/jasmine/MIT.LICENSE +0 -20
- data/jasmine/README.markdown +0 -50
- data/jasmine/Rakefile +0 -166
- data/jasmine/cruise_config.rb +0 -21
- data/jasmine/example/SpecRunner.html +0 -27
- data/jasmine/example/spec/PlayerSpec.js +0 -58
- data/jasmine/example/spec/SpecHelper.js +0 -9
- data/jasmine/example/src/Player.js +0 -22
- data/jasmine/example/src/Song.js +0 -7
- data/jasmine/images/jasmine_favicon.png +0 -0
- data/jasmine/jsdoc-template/allclasses.tmpl +0 -17
- data/jasmine/jsdoc-template/allfiles.tmpl +0 -56
- data/jasmine/jsdoc-template/class.tmpl +0 -646
- data/jasmine/jsdoc-template/index.tmpl +0 -39
- data/jasmine/jsdoc-template/publish.js +0 -184
- data/jasmine/jsdoc-template/static/default.css +0 -162
- data/jasmine/jsdoc-template/static/header.html +0 -2
- data/jasmine/jsdoc-template/static/index.html +0 -19
- data/jasmine/jsdoc-template/symbol.tmpl +0 -35
- data/jasmine/jshint/jshint.js +0 -5919
- data/jasmine/jshint/run.js +0 -98
- data/jasmine/lib/jasmine-html.js +0 -190
- data/jasmine/lib/jasmine.css +0 -166
- data/jasmine/lib/jasmine.js +0 -2445
- data/jasmine/lib/json2.js +0 -478
- data/jasmine/spec/node_suite.js +0 -233
- data/jasmine/spec/runner.html +0 -82
- data/jasmine/spec/suites/BaseSpec.js +0 -27
- data/jasmine/spec/suites/CustomMatchersSpec.js +0 -97
- data/jasmine/spec/suites/EnvSpec.js +0 -158
- data/jasmine/spec/suites/ExceptionsSpec.js +0 -107
- data/jasmine/spec/suites/JsApiReporterSpec.js +0 -103
- data/jasmine/spec/suites/MatchersSpec.js +0 -795
- data/jasmine/spec/suites/MockClockSpec.js +0 -38
- data/jasmine/spec/suites/MultiReporterSpec.js +0 -45
- data/jasmine/spec/suites/NestedResultsSpec.js +0 -54
- data/jasmine/spec/suites/PrettyPrintSpec.js +0 -93
- data/jasmine/spec/suites/QueueSpec.js +0 -23
- data/jasmine/spec/suites/ReporterSpec.js +0 -56
- data/jasmine/spec/suites/RunnerSpec.js +0 -267
- data/jasmine/spec/suites/SpecRunningSpec.js +0 -1253
- data/jasmine/spec/suites/SpecSpec.js +0 -124
- data/jasmine/spec/suites/SpySpec.js +0 -201
- data/jasmine/spec/suites/SuiteSpec.js +0 -120
- data/jasmine/spec/suites/TrivialConsoleReporterSpec.js +0 -431
- data/jasmine/spec/suites/TrivialReporterSpec.js +0 -238
- data/jasmine/spec/suites/UtilSpec.js +0 -39
- data/jasmine/spec/suites/WaitsForBlockSpec.js +0 -118
- data/jasmine/src/Block.js +0 -22
- data/jasmine/src/Env.js +0 -264
- data/jasmine/src/JsApiReporter.js +0 -102
- data/jasmine/src/Matchers.js +0 -354
- data/jasmine/src/MultiReporter.js +0 -35
- data/jasmine/src/NestedResults.js +0 -80
- data/jasmine/src/PrettyPrinter.js +0 -123
- data/jasmine/src/Queue.js +0 -99
- data/jasmine/src/Reporter.js +0 -31
- data/jasmine/src/Runner.js +0 -77
- data/jasmine/src/Spec.js +0 -242
- data/jasmine/src/Suite.js +0 -82
- data/jasmine/src/WaitsBlock.js +0 -15
- data/jasmine/src/WaitsForBlock.js +0 -54
- data/jasmine/src/base.js +0 -608
- data/jasmine/src/console/TrivialConsoleReporter.js +0 -144
- data/jasmine/src/html/TrivialReporter.js +0 -190
- data/jasmine/src/html/jasmine.css +0 -166
- data/jasmine/src/mock-timeout.js +0 -183
- data/jasmine/src/util.js +0 -67
- data/jasmine/src/version.json +0 -5
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.markdown
CHANGED
|
@@ -34,7 +34,13 @@ Start the Jasmine server:
|
|
|
34
34
|
|
|
35
35
|
`rake jasmine`
|
|
36
36
|
|
|
37
|
-
Point your browser to `localhost:8888`. The suite will run every time this page is re-loaded.
|
|
37
|
+
Point your browser to `localhost:8888`. The suite will run every time this page is re-loaded.
|
|
38
|
+
|
|
39
|
+
Start Jasmine on a different port:
|
|
40
|
+
|
|
41
|
+
`rake jasmine JASMINE_PORT=1337`
|
|
42
|
+
|
|
43
|
+
Point your browser to `localhost:1337`.
|
|
38
44
|
|
|
39
45
|
For Continuous Integration environments, add this task to the project build steps:
|
|
40
46
|
|
data/Rakefile
CHANGED
|
@@ -2,6 +2,7 @@ $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__))
|
|
|
2
2
|
$LOAD_PATH.unshift File.expand_path("#{File.dirname(__FILE__)}/lib")
|
|
3
3
|
require "bundler"
|
|
4
4
|
Bundler.setup
|
|
5
|
+
Bundler::GemHelper.install_tasks
|
|
5
6
|
|
|
6
7
|
def rspec2?
|
|
7
8
|
Gem.available? "rspec", ">= 2.0"
|
|
@@ -23,7 +24,7 @@ require 'ci/reporter/rake/rspec'
|
|
|
23
24
|
desc "Run all examples"
|
|
24
25
|
if rspec2?
|
|
25
26
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
|
26
|
-
t.pattern = 'spec
|
|
27
|
+
t.pattern = 'spec/**/*_spec.rb'
|
|
27
28
|
end
|
|
28
29
|
else
|
|
29
30
|
Spec::Rake::SpecTask.new('spec') do |t|
|
|
@@ -31,46 +32,31 @@ else
|
|
|
31
32
|
end
|
|
32
33
|
end
|
|
33
34
|
|
|
34
|
-
task :spec => ['jasmine:copy_examples_to_gem', '
|
|
35
|
-
|
|
36
|
-
task :spex do
|
|
37
|
-
`bundle install`
|
|
38
|
-
Rake::Task["spec"].invoke
|
|
39
|
-
end
|
|
35
|
+
task :spec => ['jasmine:copy_examples_to_gem', 'ci:setup:rspec']
|
|
40
36
|
|
|
41
37
|
task :default => :spec
|
|
42
38
|
|
|
43
39
|
namespace :jasmine do
|
|
40
|
+
require "jasmine-core"
|
|
44
41
|
require './spec/jasmine_self_test_config'
|
|
45
|
-
task :server do
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
task :server do
|
|
43
|
+
port = ENV['JASMINE_PORT'] || 8888
|
|
44
|
+
JasmineSelfTestConfig.new.start_server(port)
|
|
48
45
|
|
|
49
|
-
|
|
46
|
+
puts "your tests are here:"
|
|
47
|
+
puts " http://localhost:#{port}/"
|
|
50
48
|
end
|
|
51
49
|
|
|
52
50
|
desc "Copy examples from Jasmine JS to the gem"
|
|
53
51
|
task :copy_examples_to_gem do
|
|
54
|
-
unless File.exist?('jasmine/lib')
|
|
55
|
-
raise "Jasmine submodule isn't present. Run git submodule update --init"
|
|
56
|
-
end
|
|
57
|
-
|
|
58
52
|
require "fileutils"
|
|
59
53
|
|
|
60
54
|
# copy jasmine's example tree into our generator templates dir
|
|
61
55
|
FileUtils.rm_r('generators/jasmine/templates/jasmine-example', :force => true)
|
|
62
|
-
FileUtils.cp_r('
|
|
56
|
+
FileUtils.cp_r(File.join(Jasmine::Core.path, 'example'), 'generators/jasmine/templates/jasmine-example', :preserve => true)
|
|
63
57
|
end
|
|
64
58
|
end
|
|
65
59
|
|
|
66
60
|
desc "Run specs via server"
|
|
67
61
|
task :jasmine => ['jasmine:server']
|
|
68
62
|
|
|
69
|
-
desc "Install Bundle"
|
|
70
|
-
task "bundle_install" do
|
|
71
|
-
`bundle install`
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
require 'bundler'
|
|
76
|
-
Bundler::GemHelper.install_tasks
|
|
@@ -2,26 +2,53 @@
|
|
|
2
2
|
"http://www.w3.org/TR/html4/loose.dtd">
|
|
3
3
|
<html>
|
|
4
4
|
<head>
|
|
5
|
-
<title>Jasmine
|
|
6
|
-
|
|
7
|
-
<
|
|
8
|
-
|
|
5
|
+
<title>Jasmine Spec Runner</title>
|
|
6
|
+
|
|
7
|
+
<link rel="shortcut icon" type="image/png" href="lib/jasmine-1.1.0.rc1/jasmine_favicon.png">
|
|
8
|
+
|
|
9
|
+
<link rel="stylesheet" type="text/css" href="lib/jasmine-1.1.0.rc1/jasmine.css">
|
|
10
|
+
<script type="text/javascript" src="lib/jasmine-1.1.0.rc1/jasmine.js"></script>
|
|
11
|
+
<script type="text/javascript" src="lib/jasmine-1.1.0.rc1/jasmine-html.js"></script>
|
|
9
12
|
|
|
10
13
|
<!-- include source files here... -->
|
|
14
|
+
<script type="text/javascript" src="spec/SpecHelper.js"></script>
|
|
15
|
+
<script type="text/javascript" src="spec/PlayerSpec.js"></script>
|
|
16
|
+
|
|
17
|
+
<!-- include spec files here... -->
|
|
11
18
|
<script type="text/javascript" src="src/Player.js"></script>
|
|
12
19
|
<script type="text/javascript" src="src/Song.js"></script>
|
|
13
20
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
21
|
+
<script type="text/javascript">
|
|
22
|
+
(function() {
|
|
23
|
+
var jasmineEnv = jasmine.getEnv();
|
|
24
|
+
jasmineEnv.updateInterval = 1000;
|
|
25
|
+
|
|
26
|
+
var trivialReporter = new jasmine.TrivialReporter();
|
|
27
|
+
|
|
28
|
+
jasmineEnv.addReporter(trivialReporter);
|
|
29
|
+
|
|
30
|
+
jasmineEnv.specFilter = function(spec) {
|
|
31
|
+
return trivialReporter.specFilter(spec);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var currentWindowOnload = window.onload;
|
|
35
|
+
|
|
36
|
+
window.onload = function() {
|
|
37
|
+
if (currentWindowOnload) {
|
|
38
|
+
currentWindowOnload();
|
|
39
|
+
}
|
|
40
|
+
execJasmine();
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
function execJasmine() {
|
|
44
|
+
jasmineEnv.execute();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
})();
|
|
48
|
+
</script>
|
|
17
49
|
|
|
18
50
|
</head>
|
|
19
|
-
<body>
|
|
20
|
-
<div id="REMOVE_THIS_LINE_FROM_BUILD"><p>You must be trying to look at examples in the Jasmine source tree.</p><p>Please download a distribution version of Jasmine at <a href="http://pivotal.github.com/jasmine/">http://pivotal.github.com/jasmine/</a>.</p></div>
|
|
21
|
-
<script type="text/javascript">
|
|
22
|
-
jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
|
|
23
|
-
jasmine.getEnv().execute();
|
|
24
|
-
</script>
|
|
25
51
|
|
|
52
|
+
<body>
|
|
26
53
|
</body>
|
|
27
54
|
</html>
|
|
@@ -2,8 +2,8 @@ beforeEach(function() {
|
|
|
2
2
|
this.addMatchers({
|
|
3
3
|
toBePlaying: function(expectedSong) {
|
|
4
4
|
var player = this.actual;
|
|
5
|
-
return player.currentlyPlayingSong === expectedSong
|
|
6
|
-
|
|
5
|
+
return player.currentlyPlayingSong === expectedSong &&
|
|
6
|
+
player.isPlaying;
|
|
7
7
|
}
|
|
8
|
-
})
|
|
8
|
+
});
|
|
9
9
|
});
|
data/jasmine.gemspec
CHANGED
|
@@ -20,32 +20,42 @@ Gem::Specification.new do |s|
|
|
|
20
20
|
s.rdoc_options = ["--charset=UTF-8"]
|
|
21
21
|
|
|
22
22
|
if ENV['RAILS_VERSION'] == 'pojs-rspec1'
|
|
23
|
-
|
|
23
|
+
if ENV["RUBY_VERSION"] =~ /1\.8\.6/
|
|
24
|
+
#1.3.2 buffer overflows
|
|
25
|
+
s.add_development_dependency 'rspec', '= 1.3.1'
|
|
26
|
+
s.add_development_dependency 'rack', "1.1"
|
|
27
|
+
else
|
|
28
|
+
s.add_development_dependency 'rspec', '>= 1.3.1', '< 2'
|
|
29
|
+
end
|
|
24
30
|
s.add_development_dependency 'rake-tasks'
|
|
25
|
-
s.add_development_dependency 'rack', "1.1" if ENV["RUBY_VERSION"] =~ /1\.8\.6/
|
|
26
31
|
elsif ENV['RAILS_VERSION'] == 'pojs-rspec2'
|
|
27
32
|
s.add_development_dependency 'rspec', '>= 2.5.0'
|
|
28
33
|
s.add_development_dependency 'rake-tasks'
|
|
29
34
|
s.add_development_dependency 'rack', "1.1" if ENV["RUBY_VERSION"] =~ /1\.8\.6/
|
|
30
35
|
elsif ENV['RAILS_VERSION'] == 'rails2'
|
|
36
|
+
if ENV["RUBY_VERSION"] =~ /1\.8\.6/
|
|
37
|
+
#1.3.2 buffer overflows
|
|
38
|
+
s.add_development_dependency 'rspec', '= 1.3.1'
|
|
39
|
+
else
|
|
40
|
+
s.add_development_dependency 'rspec', '>= 1.3.1', '< 2'
|
|
41
|
+
end
|
|
31
42
|
# for development & test of Rails 2 Generators
|
|
32
|
-
s.add_development_dependency '
|
|
33
|
-
s.add_development_dependency '
|
|
34
|
-
s.add_development_dependency 'rack', '1.1'
|
|
43
|
+
s.add_development_dependency 'rails', '2.3.11', "< 3"
|
|
44
|
+
s.add_development_dependency 'rack', '>= 1.1', "< 1.2"
|
|
35
45
|
else
|
|
36
46
|
# for development & test of Rails 3 Generators
|
|
37
47
|
s.add_development_dependency 'rspec', '>= 2.5.0'
|
|
38
|
-
s.add_development_dependency 'rails', '>= 3.0.
|
|
48
|
+
s.add_development_dependency 'rails', '>= 3.0.0'
|
|
39
49
|
s.add_development_dependency 'rack', '>= 1.2.1'
|
|
40
50
|
end
|
|
41
51
|
|
|
42
52
|
s.add_development_dependency 'rack-test'
|
|
43
53
|
s.add_development_dependency 'gem-release', ">= 0.0.16"
|
|
44
54
|
s.add_development_dependency 'ci_reporter'
|
|
55
|
+
s.add_development_dependency 'json_pure'
|
|
45
56
|
|
|
57
|
+
s.add_dependency 'jasmine-core', ">= 1.1.0.rc2"
|
|
46
58
|
s.add_dependency 'rack', '>= 1.1'
|
|
47
59
|
s.add_dependency 'rspec', '>= 1.3.1'
|
|
48
|
-
s.add_dependency 'json_pure', '>= 1.4.3'
|
|
49
60
|
s.add_dependency 'selenium-webdriver', '>= 0.1.3'
|
|
50
|
-
|
|
51
61
|
end
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
begin
|
|
2
|
+
require 'jasmine'
|
|
3
|
+
load 'jasmine/tasks/jasmine.rake'
|
|
4
|
+
rescue LoadError
|
|
5
|
+
task :jasmine do
|
|
6
|
+
abort "Jasmine is not available. In order to run jasmine, you must: (sudo) gem install jasmine"
|
|
7
|
+
end
|
|
8
|
+
end
|
data/lib/jasmine/base.rb
CHANGED
|
@@ -2,10 +2,6 @@ require 'socket'
|
|
|
2
2
|
require 'erb'
|
|
3
3
|
|
|
4
4
|
module Jasmine
|
|
5
|
-
def self.root
|
|
6
|
-
ENV["JASMINE_ROOT"] || File.expand_path(File.join(File.dirname(__FILE__), '../../jasmine'))
|
|
7
|
-
end
|
|
8
|
-
|
|
9
5
|
# this seemingly-over-complex method is necessary to get an open port on at least some of our Macs
|
|
10
6
|
def self.open_socket_on_unused_port
|
|
11
7
|
infos = Socket::getaddrinfo("localhost", nil, Socket::AF_UNSPEC, Socket::SOCK_STREAM, 0, Socket::AI_PASSIVE)
|
|
@@ -57,10 +53,17 @@ module Jasmine
|
|
|
57
53
|
end
|
|
58
54
|
|
|
59
55
|
def self.rspec2?
|
|
56
|
+
Gem::Specification::find_by_name "rspec", ">= 2.0"
|
|
57
|
+
rescue
|
|
60
58
|
Gem.available? "rspec", ">= 2.0"
|
|
61
59
|
end
|
|
62
|
-
|
|
60
|
+
|
|
63
61
|
def self.rails3?
|
|
64
|
-
|
|
62
|
+
return Rails.version.split(".").first.to_i == 3 if defined? Rails
|
|
63
|
+
begin
|
|
64
|
+
Gem::Specification::find_by_name "rails", ">= 3.0"
|
|
65
|
+
rescue
|
|
66
|
+
Gem.available? "rails", ">= 3.0"
|
|
67
|
+
end
|
|
65
68
|
end
|
|
66
69
|
end
|
|
@@ -44,13 +44,13 @@ module Jasmine
|
|
|
44
44
|
copy_unless_exists('spec/javascripts/support/jasmine-rails.yml', 'spec/javascripts/support/jasmine.yml')
|
|
45
45
|
else
|
|
46
46
|
copy_unless_exists('spec/javascripts/support/jasmine.yml')
|
|
47
|
+
require 'rake'
|
|
47
48
|
write_mode = 'w'
|
|
48
49
|
if File.exist?(dest_path('Rakefile'))
|
|
49
50
|
load dest_path('Rakefile')
|
|
50
51
|
write_mode = 'a'
|
|
51
52
|
end
|
|
52
53
|
|
|
53
|
-
require 'rake'
|
|
54
54
|
unless Rake::Task.task_defined?('jasmine')
|
|
55
55
|
File.open(dest_path('Rakefile'), write_mode) do |f|
|
|
56
56
|
f.write("\n" + File.read(template_path('lib/tasks/jasmine.rake')))
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Software License Agreement (BSD License)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2007, Parakey Inc.
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use of this software in source and binary forms, with or without modification,
|
|
7
|
+
are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
* Redistributions of source code must retain the above
|
|
10
|
+
copyright notice, this list of conditions and the
|
|
11
|
+
following disclaimer.
|
|
12
|
+
|
|
13
|
+
* Redistributions in binary form must reproduce the above
|
|
14
|
+
copyright notice, this list of conditions and the
|
|
15
|
+
following disclaimer in the documentation and/or other
|
|
16
|
+
materials provided with the distribution.
|
|
17
|
+
|
|
18
|
+
* Neither the name of Parakey Inc. nor the names of its
|
|
19
|
+
contributors may be used to endorse or promote products
|
|
20
|
+
derived from this software without specific prior
|
|
21
|
+
written permission of Parakey Inc.
|
|
22
|
+
|
|
23
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
|
24
|
+
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
25
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
26
|
+
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
27
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
28
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
|
29
|
+
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
30
|
+
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'selenium/webdriver'
|
|
2
|
+
|
|
3
|
+
class Selenium::WebDriver::Firefox::Profile
|
|
4
|
+
def self.firebug_version
|
|
5
|
+
@firebug_version ||= '1.6.2'
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def self.firebug_version=(version)
|
|
9
|
+
@firebug_version = version
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def enable_firebug(version = nil)
|
|
13
|
+
version ||= Selenium::WebDriver::Firefox::Profile.firebug_version
|
|
14
|
+
add_extension(File.expand_path("../firebug-#{version}.xpi", __FILE__))
|
|
15
|
+
|
|
16
|
+
# Prevent "Welcome!" tab
|
|
17
|
+
self["extensions.firebug.currentVersion"] = "999"
|
|
18
|
+
|
|
19
|
+
# Enable for all sites.
|
|
20
|
+
self["extensions.firebug.allPagesActivation"] = "on"
|
|
21
|
+
|
|
22
|
+
# Enable all features.
|
|
23
|
+
['console', 'net', 'script'].each do |feature|
|
|
24
|
+
self["extensions.firebug.#{feature}.enableSites"] = true
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Open by default.
|
|
28
|
+
self["extensions.firebug.previousPlacement"] = 1
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -7,10 +7,16 @@ module Jasmine
|
|
|
7
7
|
elsif ENV['SELENIUM_SERVER_PORT']
|
|
8
8
|
"http://localhost:#{ENV['SELENIUM_SERVER_PORT']}/wd/hub"
|
|
9
9
|
end
|
|
10
|
+
options = if browser == "firefox" && ENV["JASMINE_FIREBUG"]
|
|
11
|
+
require File.join(File.dirname(__FILE__), "firebug/firebug")
|
|
12
|
+
profile = Selenium::WebDriver::Firefox::Profile.new
|
|
13
|
+
profile.enable_firebug
|
|
14
|
+
{:profile => profile}
|
|
15
|
+
end || {}
|
|
10
16
|
@driver = if selenium_server
|
|
11
17
|
Selenium::WebDriver.for :remote, :url => selenium_server, :desired_capabilities => browser.to_sym
|
|
12
18
|
else
|
|
13
|
-
Selenium::WebDriver.for browser.to_sym
|
|
19
|
+
Selenium::WebDriver.for browser.to_sym, options
|
|
14
20
|
end
|
|
15
21
|
@http_address = http_address
|
|
16
22
|
end
|
|
@@ -46,4 +52,4 @@ module Jasmine
|
|
|
46
52
|
JSON.generate(obj)
|
|
47
53
|
end
|
|
48
54
|
end
|
|
49
|
-
end
|
|
55
|
+
end
|
data/lib/jasmine/server.rb
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
require 'rack'
|
|
2
|
+
require 'jasmine-core'
|
|
2
3
|
|
|
3
4
|
module Jasmine
|
|
4
5
|
class RunAdapter
|
|
5
6
|
def initialize(config)
|
|
6
7
|
@config = config
|
|
7
|
-
@jasmine_files =
|
|
8
|
-
|
|
9
|
-
"/__JASMINE_ROOT__/lib/jasmine-html.js",
|
|
10
|
-
"/__JASMINE_ROOT__/lib/json2.js",
|
|
11
|
-
]
|
|
12
|
-
@jasmine_stylesheets = ["/__JASMINE_ROOT__/lib/jasmine.css"]
|
|
8
|
+
@jasmine_files = Jasmine::Core.js_files.map {|f| "/__JASMINE_ROOT__/#{f}"}
|
|
9
|
+
@jasmine_stylesheets = Jasmine::Core.css_files.map {|f| "/__JASMINE_ROOT__/#{f}"}
|
|
13
10
|
end
|
|
14
11
|
|
|
15
12
|
def call(env)
|
|
@@ -81,7 +78,7 @@ module Jasmine
|
|
|
81
78
|
map('/run.html') { run Jasmine::Redirect.new('/') }
|
|
82
79
|
map('/__suite__') { run Jasmine::FocusedSuite.new(config) }
|
|
83
80
|
|
|
84
|
-
map('/__JASMINE_ROOT__') { run Rack::File.new(Jasmine.
|
|
81
|
+
map('/__JASMINE_ROOT__') { run Rack::File.new(Jasmine::Core.path) }
|
|
85
82
|
map(config.spec_path) { run Rack::File.new(config.spec_dir) }
|
|
86
83
|
map(config.root_path) { run Rack::File.new(config.project_root) }
|
|
87
84
|
|
|
@@ -3,8 +3,17 @@ namespace :jasmine do
|
|
|
3
3
|
require 'jasmine'
|
|
4
4
|
end
|
|
5
5
|
|
|
6
|
+
task :require_json do
|
|
7
|
+
begin
|
|
8
|
+
require 'json'
|
|
9
|
+
rescue LoadError
|
|
10
|
+
puts "You must have a JSON library installed to run jasmine:ci. Try \"gem install json\""
|
|
11
|
+
exit
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
6
15
|
desc "Run continuous integration tests"
|
|
7
|
-
task :ci => "jasmine:require" do
|
|
16
|
+
task :ci => ["jasmine:require_json", "jasmine:require"] do
|
|
8
17
|
if Jasmine::rspec2?
|
|
9
18
|
require "rspec"
|
|
10
19
|
require "rspec/core/rake_task"
|
|
@@ -15,13 +24,13 @@ namespace :jasmine do
|
|
|
15
24
|
|
|
16
25
|
if Jasmine::rspec2?
|
|
17
26
|
RSpec::Core::RakeTask.new(:jasmine_continuous_integration_runner) do |t|
|
|
18
|
-
t.rspec_opts = ["--colour", "--format", "progress"]
|
|
27
|
+
t.rspec_opts = ["--colour", "--format", ENV['JASMINE_SPEC_FORMAT'] || "progress"]
|
|
19
28
|
t.verbose = true
|
|
20
29
|
t.pattern = ['spec/javascripts/support/jasmine_runner.rb']
|
|
21
30
|
end
|
|
22
31
|
else
|
|
23
32
|
Spec::Rake::SpecTask.new(:jasmine_continuous_integration_runner) do |t|
|
|
24
|
-
t.spec_opts = ["--color", "--format", "specdoc"]
|
|
33
|
+
t.spec_opts = ["--color", "--format", ENV['JASMINE_SPEC_FORMAT'] || "specdoc"]
|
|
25
34
|
t.verbose = true
|
|
26
35
|
t.spec_files = ['spec/javascripts/support/jasmine_runner.rb']
|
|
27
36
|
end
|
|
@@ -33,10 +42,10 @@ namespace :jasmine do
|
|
|
33
42
|
jasmine_config_overrides = './spec/javascripts/support/jasmine_config.rb'
|
|
34
43
|
require jasmine_config_overrides if File.exist?(jasmine_config_overrides)
|
|
35
44
|
|
|
45
|
+
port = ENV['JASMINE_PORT'] || 8888
|
|
36
46
|
puts "your tests are here:"
|
|
37
|
-
puts " http://localhost
|
|
38
|
-
|
|
39
|
-
Jasmine::Config.new.start_server
|
|
47
|
+
puts " http://localhost:#{port}/"
|
|
48
|
+
Jasmine::Config.new.start_server(port)
|
|
40
49
|
end
|
|
41
50
|
end
|
|
42
51
|
|