js-test-driver-rails 0.1.0

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/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem "bundler", "~> 0.9.26"
4
+ gem "jeweler"
5
+ gem "mocha"
6
+ gem "rake"
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2010 by Adam Pohorecki
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,28 @@
1
+ js-test-driver-rails is a thin wrapper for the JsTestDriver library: http://code.google.com/p/js-test-driver/
2
+
3
+ To take advantage of it, you should create a js_test_driver.rb file in your RAILS_ROOT/config/ directory.
4
+
5
+ The file may contain following directives:
6
+
7
+ includes 'foo', 'bar', 'public/javascripts/*.js' # files to be included
8
+ excludes 'public/javascripts/fail.js' # files to be excluded, useful with globbing
9
+
10
+ host 'my-laptop' # the host to which the test runner will connect, by default 'localhost'
11
+ port 6666 # the port to which test runner will connect, and on which the test server will start, by default 4224
12
+
13
+ browser 'firefox' # you can specify the default browsers which will be captured
14
+
15
+ Note, that this is a ruby file, so the file/browser list can be generated dynamically - it's completely up to you.
16
+
17
+ This gem comes with 3 rake tasks:
18
+
19
+ # start the js test driver server
20
+ rake js_test_driver:start_server
21
+
22
+ # capture the default (or specified) browsers
23
+ rake js_test_driver:capture_browsers [BROWSERS=foo,bar,baz]
24
+
25
+ # run the tests (all or the specified ones)
26
+ rake js_test_driver:run_tests [TESTS=TestCase[.testMethod]]
27
+
28
+ You can add these tasks by requiring "js_test_driver/tasks"
data/Rakefile ADDED
@@ -0,0 +1,34 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ Bundler.setup
5
+
6
+ require 'rake'
7
+ require 'rake/testtask'
8
+ require 'jeweler'
9
+
10
+ Rake::TestTask.new("test") do |test|
11
+ test.libs << 'test'
12
+ test.pattern = 'test/unit/**/*_test.rb'
13
+ test.verbose = true
14
+ end
15
+
16
+ Jeweler::Tasks.new do |gem|
17
+ gem.name = "js-test-driver-rails"
18
+ gem.summary = "A wrapper for JsTestDriver for use with ruby/rails projects"
19
+ gem.description = "Use ruby to configure JsTestDriver, capture browsers and run tests."
20
+ gem.email = "adam@pohorecki.pl"
21
+ gem.homepage = "http://github.com/psyho/js-test-driver-rails"
22
+ gem.authors = ["Adam Pohorecki"]
23
+ gem.rubyforge_project = "js-test-driver-rails"
24
+ gem.add_development_dependency "jeweler"
25
+ gem.add_development_dependency "mocha"
26
+ gem.add_development_dependency "jeweler"
27
+ gem.add_dependency "rake"
28
+ gem.files = FileList["[A-Z]*", "{bin,generators,lib,test,vendor}/**/*"]
29
+ end
30
+
31
+ Jeweler::GemcutterTasks.new
32
+ Jeweler::RubyforgeTasks.new do |rubyforge|
33
+ rubyforge.doc_task = "rdoc"
34
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,2 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'js_test_driver', 'config'))
2
+ require File.expand_path(File.join(File.dirname(__FILE__), 'js_test_driver', 'runner'))
@@ -0,0 +1,116 @@
1
+ module JsTestDriver
2
+ # The Config class represents the YAML config file that is passed to JsTestDriver
3
+ #
4
+ # includes corresponds to load
5
+ # excludes corresponds to exclude
6
+ # server can be configures either using server, or host and port
7
+ #
8
+ # The configuration is very basic, however the fact that it is done in Ruby, gives the
9
+ # user a significant amount of freedom in terms of what is and is not loaded, and so on
10
+ class Config
11
+
12
+ def initialize(attributes = {})
13
+ self.attributes = attributes
14
+ end
15
+
16
+ # Adds a file to be loaded, the path *must* be relative to the yml config file (which is placed in the RAILS_ROOT
17
+ # by default)
18
+ #
19
+ # JsTestDriver supports globbing
20
+ def includes(*paths)
21
+ paths.each do |path|
22
+ self.included_files << path
23
+ end
24
+ end
25
+
26
+ # Files specified here will not be loaded, it's useful when combined with globbing in includes
27
+ #
28
+ # paths should be relative to RAILS_ROOT
29
+ def excludes(*paths)
30
+ paths.each do |path|
31
+ self.excluded_files << path
32
+ end
33
+ end
34
+
35
+ # Defines a browser to be captured by default
36
+ #
37
+ # This should be a string with no spaces (if you need to pass parameters to the browser you will
38
+ # need to create a shell script ans put it's name here)
39
+ def browser(browsers)
40
+ browsers.each do |browser|
41
+ self.browsers << browser
42
+ end
43
+ end
44
+
45
+ # config variable which has a regular setter,
46
+ # but also can be set by calling the "getter" with an argument
47
+ # and if called without an argument the getter will return the passed block
48
+ #
49
+ # Ex.
50
+ # A.define_config_variable(:foo) { @foo || "hello" }
51
+ # a = A.new
52
+ # a.foo # returns "hello"
53
+ # a.foo "foo"
54
+ # a.foo # returns "foo"
55
+ # a.foo = "bar"
56
+ # a.foo # returns "bar"
57
+ def self.define_config_variable(name, &block)
58
+ attr_writer name
59
+
60
+ define_method(name) do |*values|
61
+ unless values.empty?
62
+ self.send("#{name}=", values.first)
63
+ else
64
+ instance_eval(&block)
65
+ end
66
+ end
67
+ end
68
+
69
+ # the port the server will use, by default 4224
70
+ define_config_variable(:port) { @port ||= 4224 }
71
+
72
+ # the host of the server, by default localhost
73
+ define_config_variable(:host) { @host ||= 'localhost' }
74
+
75
+ # the whole server string - unless overwritten will be constructed from host and port,
76
+ # if you specify server, host and port will be ignored
77
+ # but you still need to specify port for starting the server
78
+ define_config_variable(:server) { @server || "http://#{host}:#{port}" }
79
+
80
+ def included_files
81
+ @includes ||= []
82
+ end
83
+
84
+ def excluded_files
85
+ @excludes ||= []
86
+ end
87
+
88
+ attr_writer :browsers
89
+
90
+ def browsers
91
+ @browsers ||= []
92
+ end
93
+
94
+ def to_s
95
+ hash = {'server' => server}
96
+ hash['load'] = included_files unless included_files.empty?
97
+ hash['exclude'] = excluded_files unless excluded_files.empty?
98
+ return hash.to_yaml
99
+ end
100
+
101
+ def self.parse(string)
102
+ config = new
103
+ config.instance_eval(string)
104
+ return config
105
+ end
106
+
107
+ private
108
+
109
+ def attributes=(values)
110
+ values.each do |attr, value|
111
+ self.send("#{attr}=", value)
112
+ end
113
+ end
114
+
115
+ end
116
+ end
@@ -0,0 +1,143 @@
1
+ module JsTestDriver
2
+ # The Runner class is used
3
+ class Runner
4
+
5
+ def initialize(attributes = {})
6
+ self.attributes = attributes
7
+ end
8
+
9
+ # configuration, by default it's parsed from config_path
10
+ attr_writer :config
11
+
12
+ def config
13
+ @config ||= parse_config
14
+ end
15
+
16
+ # this is the path of the config file, by default its `pwd`/config/js_test_driver.rb
17
+ attr_writer :config_path
18
+
19
+ def config_path
20
+ @config_path ||= default_config_path
21
+ end
22
+
23
+ # this is the path to the js test driver jar file, by default it's stored relatively to this file
24
+ attr_writer :jar_path
25
+
26
+ def jar_path
27
+ @jar_path ||= default_jar_path
28
+ end
29
+
30
+ # this is where the config yml file will be saved, by default its /tmp/js_test_driver.(contents MD5).yml
31
+ attr_writer :tmp_path
32
+
33
+ def config_yml_path
34
+ @tmp_path ||= default_config_yml_path
35
+ end
36
+
37
+ # starts the server on the default port specified in the config file
38
+ def start_server
39
+ start_server_command.run
40
+ end
41
+
42
+ # captures the browsers
43
+ #
44
+ # by default it will capture the browsers specified in the config,
45
+ # but you can pass an argument like 'opera,chrome,firefox' to capture opera, chrome and firefox
46
+ def capture_browsers(browsers = nil)
47
+ capture_browsers_command(browsers).run
48
+ end
49
+
50
+ # runs the tests specified by the argument
51
+ #
52
+ # by default it will run all the tests, but you can pass a string like:
53
+ # 'TestCase' or 'TestCase.test'
54
+ # to run either a single test case or a single test
55
+ def run_tests(tests = nil)
56
+ run_tests_command(tests).run
57
+ end
58
+
59
+ protected
60
+
61
+ def start_server_command
62
+ execute_jar_command.option('--port', config.port)
63
+ end
64
+
65
+ def run_tests_command(tests)
66
+ run_with_config.option('--tests', tests || "all") #.option('--runnerMode', 'DEBUG')
67
+ end
68
+
69
+ def capture_browsers_command(browsers)
70
+ browsers ||= config.browsers.join(',')
71
+ raise ArgumentError.new("No browsers defined!") if browsers == ""
72
+ run_with_config.option('--browser', browsers)
73
+ end
74
+
75
+ def run_with_config
76
+ save_config_file(config_yml_path)
77
+ execute_jar_command.option('--config', config_yml_path)
78
+ end
79
+
80
+ def execute_jar_command
81
+ Command.new('java').option('-jar', jar_path)
82
+ end
83
+
84
+ def parse_config
85
+ source = ""
86
+ if File.exist?(config_path)
87
+ source = File.read(config_path)
88
+ else
89
+ warn("Could not find JS Test Driver config: '#{config_path}', assuming empty config file!")
90
+ end
91
+ JsTestDriver::Config.parse(source)
92
+ end
93
+
94
+ def default_config_path
95
+ root = defined?(RAILS_ROOT) ? RAILS_ROOT : '.'
96
+ return File.expand_path(File.join(root, 'config', 'js_test_driver.rb'))
97
+ end
98
+
99
+ def default_jar_path
100
+ current_dir = File.dirname(__FILE__)
101
+ path = File.join(current_dir, '..', '..', 'vendor', 'js_test_driver.jar')
102
+ return File.expand_path(path)
103
+ end
104
+
105
+ def default_config_yml_path
106
+ return File.expand_path("jsTestDriver.conf")
107
+ end
108
+
109
+ private
110
+
111
+ def save_config_file(path)
112
+ File.open(path, "w+") { |f| f.puts config.to_s }
113
+ end
114
+
115
+ def attributes=(values)
116
+ values.each do |attr, value|
117
+ self.send("#{attr}=", value)
118
+ end
119
+ end
120
+
121
+ class Command
122
+ def initialize(executable)
123
+ @command = "#{executable}"
124
+ end
125
+
126
+ def option(name, value = nil)
127
+ value = "'#{value}'" if value && value =~ /\s/
128
+ @command = [@command, name, value].compact.join(' ')
129
+ self
130
+ end
131
+
132
+ def run
133
+ system(self.to_s)
134
+ end
135
+
136
+ def to_s
137
+ return @command
138
+ end
139
+ end
140
+
141
+ end
142
+
143
+ end
@@ -0,0 +1,20 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'js_test_driver'))
2
+
3
+ namespace :js_test_driver do
4
+
5
+ desc "Starts the server using the provided configuration variables"
6
+ task :start_server do
7
+ JsTestDriver::Runner.new.start_server
8
+ end
9
+
10
+ desc "Runs the javascript tests"
11
+ task :run_tests do
12
+ exit(1) unless JsTestDriver::Runner.new.run_tests(ENV['TESTS'])
13
+ end
14
+
15
+ desc "Capture the browsers defined in config"
16
+ task :capture_browsers do
17
+ JsTestDriver::Runner.new.capture_browsers(ENV['BROWSERS'])
18
+ end
19
+
20
+ end
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ Bundler.setup
5
+
6
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'js_test_driver'))
7
+
8
+ require 'test/unit'
9
+ require 'mocha'
@@ -0,0 +1,154 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
+
3
+ module JsTestDriver
4
+ class ConfigTest < Test::Unit::TestCase
5
+
6
+ def default_result
7
+ {'server' => 'http://localhost:4224'}
8
+ end
9
+
10
+ def assert_config_includes(config, hash)
11
+ expected = default_result.merge(hash)
12
+ assert_equal expected, YAML::load(config.to_s)
13
+ end
14
+
15
+ def given_an_empty_config
16
+ JsTestDriver::Config.new
17
+ end
18
+
19
+ def test_empty_config
20
+ # given
21
+ config = given_an_empty_config
22
+
23
+ # then
24
+ assert_config_includes(config, default_result)
25
+ end
26
+
27
+ def test_custom_port
28
+ # given
29
+ config = given_an_empty_config
30
+
31
+ # when
32
+ config.port 666
33
+
34
+ # then
35
+ assert_config_includes config, 'server' => 'http://localhost:666'
36
+ end
37
+
38
+ def test_custom_host
39
+ # given
40
+ config = given_an_empty_config
41
+
42
+ # when
43
+ config.host 'example.com'
44
+
45
+ # then
46
+ assert_config_includes config, 'server' => 'http://example.com:4224'
47
+ end
48
+
49
+ def test_custom_server
50
+ # given
51
+ config = given_an_empty_config
52
+
53
+ # when
54
+ config.server 'https://example.com:443'
55
+
56
+ # then
57
+ assert_config_includes config, 'server' => 'https://example.com:443'
58
+ end
59
+
60
+ def test_server_should_override_host_and_port
61
+ # given
62
+ config = given_an_empty_config
63
+
64
+ # when
65
+ config.port 666
66
+ config.host 'test.com'
67
+ config.server 'https://example.com:443'
68
+
69
+ # then
70
+ assert_config_includes config, 'server' => 'https://example.com:443'
71
+ end
72
+
73
+ def test_config_with_includes
74
+ # given
75
+ config = given_an_empty_config
76
+
77
+ # when
78
+ config.includes('src/*.js')
79
+
80
+ # then
81
+ assert_config_includes config, 'load' => ['src/*.js']
82
+ end
83
+
84
+ def test_config_with_browsers
85
+ # given
86
+ config = given_an_empty_config
87
+
88
+ # when
89
+ config.browser('firefox')
90
+ config.browser('chrome')
91
+
92
+ # then
93
+ assert_equal ['firefox', 'chrome'], config.browsers
94
+ end
95
+
96
+ def test_config_with_multiple_includes
97
+ # given
98
+ config = given_an_empty_config
99
+
100
+ # when
101
+ ['a', 'b', 'c'].each do |name|
102
+ config.includes(name)
103
+ end
104
+
105
+ # then
106
+ assert_config_includes config, 'load' => ['a', 'b', 'c']
107
+ end
108
+
109
+ def test_config_with_excludes
110
+ # given
111
+ config = given_an_empty_config
112
+
113
+ # when
114
+ config.excludes('src/*.js')
115
+
116
+ # then
117
+ assert_config_includes config, 'exclude' => ['src/*.js']
118
+ end
119
+
120
+ def test_empty_config_file
121
+ # given
122
+ str = ""
123
+
124
+ # when
125
+ config = JsTestDriver::Config.parse(str)
126
+
127
+ # then
128
+ assert_equal [], config.included_files
129
+ assert_equal [], config.excluded_files
130
+ assert_equal "http://localhost:4224", config.server
131
+ end
132
+
133
+ def test_sample_config_file
134
+ # given
135
+ str = <<-CONFIG
136
+ includes 'a', 'b'
137
+ includes 'c'
138
+
139
+ excludes 'd'
140
+
141
+ server 'http://example.com:666'
142
+ CONFIG
143
+
144
+ # when
145
+ config = JsTestDriver::Config.parse(str)
146
+
147
+ # then
148
+ assert_equal ['a', 'b', 'c'], config.included_files
149
+ assert_equal ['d'], config.excluded_files
150
+ assert_equal 'http://example.com:666', config.server
151
+ end
152
+
153
+ end
154
+ end
@@ -0,0 +1,2 @@
1
+ ---
2
+ server: http://localhost:4224
@@ -0,0 +1,88 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
+
3
+ module JsTestDriver
4
+ class RunnerTest < Test::Unit::TestCase
5
+
6
+ def given_a_runner(opts = {})
7
+ return JsTestDriver::Runner.new(opts)
8
+ end
9
+
10
+ def test_should_have_default_config_path
11
+ # given
12
+ runner = given_a_runner
13
+
14
+ # then
15
+ assert runner.config_path
16
+ end
17
+
18
+ def test_should_have_default_jar_path
19
+ # given
20
+ runner = given_a_runner
21
+
22
+ # then
23
+ assert runner.jar_path
24
+ end
25
+
26
+ def test_should_have_default_tmp_path
27
+ # given
28
+ runner = given_a_runner
29
+
30
+ # then
31
+ assert runner.config_yml_path
32
+ end
33
+
34
+ def expect_command_to_be_executed(cmd)
35
+ JsTestDriver::Runner::Command.any_instance.expects(:system).with(cmd)
36
+ end
37
+
38
+ def test_should_run_server_with_given_port_number
39
+ config = JsTestDriver::Config.new(:port => 6666)
40
+ runner = given_a_runner(:config => config)
41
+
42
+ expect_command_to_be_executed("java -jar #{runner.jar_path} --port #{config.port}")
43
+
44
+ runner.start_server
45
+ end
46
+
47
+ def test_should_run_all_tests_by_default
48
+ runner = given_a_runner(:config => JsTestDriver::Config.new)
49
+
50
+ expect_command_to_be_executed("java -jar #{runner.jar_path} --config #{runner.config_yml_path} --tests all")
51
+
52
+ runner.run_tests
53
+ end
54
+
55
+ def test_should_run_selected_tests
56
+ runner = given_a_runner(:config => JsTestDriver::Config.new)
57
+
58
+ expect_command_to_be_executed("java -jar #{runner.jar_path} --config #{runner.config_yml_path} --tests MyTestCase.some_test")
59
+
60
+ runner.run_tests('MyTestCase.some_test')
61
+ end
62
+
63
+ def test_should_raise_exception_if_no_browsers_defined_to_capture
64
+ runner = given_a_runner(:config => JsTestDriver::Config.new)
65
+
66
+ assert_raises(ArgumentError) do
67
+ runner.capture_browsers
68
+ end
69
+ end
70
+
71
+ def test_should_capture_default_browsers
72
+ runner = given_a_runner(:config => JsTestDriver::Config.new(:browsers => ['foo', 'bar', 'baz']))
73
+
74
+ expect_command_to_be_executed("java -jar #{runner.jar_path} --config #{runner.config_yml_path} --browser foo,bar,baz")
75
+
76
+ runner.capture_browsers
77
+ end
78
+
79
+ def test_should_capture_given_browsers
80
+ runner = given_a_runner(:config => JsTestDriver::Config.new(:browsers => ['foo', 'bar', 'baz']))
81
+
82
+ expect_command_to_be_executed("java -jar #{runner.jar_path} --config #{runner.config_yml_path} --browser aaa,bbb")
83
+
84
+ runner.capture_browsers('aaa,bbb')
85
+ end
86
+
87
+ end
88
+ end
Binary file
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: js-test-driver-rails
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Adam Pohorecki
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-09-01 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ name: jeweler
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ requirement: *id001
34
+ type: :development
35
+ - !ruby/object:Gem::Dependency
36
+ prerelease: false
37
+ name: mocha
38
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ requirement: *id002
48
+ type: :development
49
+ - !ruby/object:Gem::Dependency
50
+ prerelease: false
51
+ name: jeweler
52
+ version_requirements: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ requirement: *id003
62
+ type: :development
63
+ - !ruby/object:Gem::Dependency
64
+ prerelease: false
65
+ name: rake
66
+ version_requirements: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ requirement: *id004
76
+ type: :runtime
77
+ description: Use ruby to configure JsTestDriver, capture browsers and run tests.
78
+ email: adam@pohorecki.pl
79
+ executables: []
80
+
81
+ extensions: []
82
+
83
+ extra_rdoc_files:
84
+ - LICENSE
85
+ - README
86
+ files:
87
+ - Gemfile
88
+ - LICENSE
89
+ - README
90
+ - Rakefile
91
+ - VERSION
92
+ - lib/js_test_driver.rb
93
+ - lib/js_test_driver/config.rb
94
+ - lib/js_test_driver/runner.rb
95
+ - lib/js_test_driver/tasks.rb
96
+ - test/test_helper.rb
97
+ - test/unit/config_test.rb
98
+ - test/unit/jsTestDriver.conf
99
+ - test/unit/runner_test.rb
100
+ - vendor/js_test_driver.jar
101
+ has_rdoc: true
102
+ homepage: http://github.com/psyho/js-test-driver-rails
103
+ licenses: []
104
+
105
+ post_install_message:
106
+ rdoc_options:
107
+ - --charset=UTF-8
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ hash: 3
116
+ segments:
117
+ - 0
118
+ version: "0"
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ hash: 3
125
+ segments:
126
+ - 0
127
+ version: "0"
128
+ requirements: []
129
+
130
+ rubyforge_project: js-test-driver-rails
131
+ rubygems_version: 1.3.7
132
+ signing_key:
133
+ specification_version: 3
134
+ summary: A wrapper for JsTestDriver for use with ruby/rails projects
135
+ test_files:
136
+ - test/unit/runner_test.rb
137
+ - test/unit/config_test.rb
138
+ - test/test_helper.rb