js-test-driver-rails 0.3.3 → 0.3.4

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.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- js-test-driver-rails (0.3.2)
4
+ js-test-driver-rails (0.3.4)
5
5
  json
6
6
  rake
7
7
 
@@ -100,6 +100,9 @@ module JsTestDriver
100
100
  # but you still need to specify port for starting the server
101
101
  define_config_variable(:server) { @server || "http://#{host}:#{port}" }
102
102
 
103
+ # the base path to which all of the paths in the config file are relative
104
+ define_config_variable(:base_path) { @base_path ||= '/' }
105
+
103
106
  def included_files
104
107
  @includes ||= []
105
108
  end
@@ -119,7 +122,7 @@ module JsTestDriver
119
122
  end
120
123
 
121
124
  def to_s
122
- hash = {'server' => server}
125
+ hash = {'server' => server, 'basepath' => base_path}
123
126
  hash['load'] = loaded_files unless loaded_files.empty?
124
127
  hash['exclude'] = map_paths(excluded_files) unless excluded_files.empty?
125
128
  return hash.to_yaml
@@ -165,22 +168,12 @@ module JsTestDriver
165
168
  map_paths(files)
166
169
  end
167
170
 
168
- def path_relative_to_config_dir(path)
169
- source = File.expand_path(path).split(File::SEPARATOR)
170
- config = File.expand_path(config_dir).split(File::SEPARATOR)
171
-
172
- while source.first == config.first && !source.empty? && !config.empty?
173
- source.shift
174
- config.shift
175
- end
176
-
177
- parts = (['..'] * config.size) + source
178
-
179
- return File.join(*parts)
171
+ def path_relative_to_base_path(path)
172
+ path.gsub(/^#{Regexp.escape(base_path)}/, '')
180
173
  end
181
174
 
182
175
  def map_paths(files)
183
- files.map{|file| path_relative_to_config_dir(file)}
176
+ files.map{|file| path_relative_to_base_path(file)}
184
177
  end
185
178
 
186
179
  def attributes=(values)
@@ -58,12 +58,15 @@ module JsTestDriver
58
58
  # by default it will capture the browsers specified in the config,
59
59
  # but you can pass an argument like 'opera,chrome,firefox' to capture opera, chrome and firefox
60
60
  def capture_browsers(browsers = nil)
61
- command = execute_jar
61
+ browsers ||= ''
62
+ browsers = browsers.split(',')
63
+ browsers = config.browsers if browsers.empty?
62
64
 
63
- add_with_config(command)
64
- add_capture_browsers(command, browsers)
65
+ url = config.server + "/capture"
65
66
 
66
- command.run
67
+ browsers.each do |browser|
68
+ spawn("#{browser} \'#{url}\'")
69
+ end
67
70
  end
68
71
 
69
72
  # runs the tests specified by the argument
@@ -171,11 +174,11 @@ module JsTestDriver
171
174
  values.each do |attr, value|
172
175
  self.send("#{attr}=", value)
173
176
  end
174
- end
177
+ end
175
178
 
176
179
  class Command
177
180
  def initialize(executable)
178
- @command = "#{executable}"
181
+ @command = "#{executable}"
179
182
  end
180
183
 
181
184
  def option(name, value = nil)
@@ -1,3 +1,3 @@
1
1
  module JsTestDriver
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -4,7 +4,15 @@ module JsTestDriver
4
4
  class ConfigTest < Test::Unit::TestCase
5
5
 
6
6
  def default_result
7
- {'server' => 'http://localhost:4224'}
7
+ {'server' => 'http://localhost:4224', 'basepath' => '/'}
8
+ end
9
+
10
+ def path(relative_file_name)
11
+ return File.expand_path(relative_file_name).gsub(/^\//, '')
12
+ end
13
+
14
+ def paths(arr)
15
+ arr.map{|s| path(s)}
8
16
  end
9
17
 
10
18
  def assert_config_includes(config, hash)
@@ -78,7 +86,7 @@ module JsTestDriver
78
86
  config.includes('src/foo.js')
79
87
 
80
88
  # then
81
- assert_config_includes config, 'load' => ['src/foo.js']
89
+ assert_config_includes config, 'load' => paths(['src/foo.js'])
82
90
  end
83
91
 
84
92
  def test_config_with_includes_with_globbing
@@ -89,7 +97,7 @@ module JsTestDriver
89
97
  config.includes('test/fixtures/foo/**/*.html')
90
98
 
91
99
  # then
92
- assert_config_includes config, 'load' => ['test/fixtures/foo/bar/a.html', 'test/fixtures/foo/a.html']
100
+ assert_config_includes config, 'load' => paths(['test/fixtures/foo/bar/a.html', 'test/fixtures/foo/a.html'])
93
101
  end
94
102
 
95
103
  def test_config_with_browsers
@@ -114,7 +122,7 @@ module JsTestDriver
114
122
  end
115
123
 
116
124
  # then
117
- assert_config_includes config, 'load' => ['a', 'b', 'c']
125
+ assert_config_includes config, 'load' => paths(['a', 'b', 'c'])
118
126
  end
119
127
 
120
128
  def test_config_with_excludes
@@ -125,7 +133,7 @@ module JsTestDriver
125
133
  config.excludes('test/fixtures/foo/**/*.html')
126
134
 
127
135
  # then
128
- assert_config_includes config, 'exclude' => ['test/fixtures/foo/bar/a.html', 'test/fixtures/foo/a.html']
136
+ assert_config_includes config, 'exclude' => paths(['test/fixtures/foo/bar/a.html', 'test/fixtures/foo/a.html'])
129
137
  end
130
138
 
131
139
  def test_config_with_excludes_with_globbing
@@ -136,7 +144,7 @@ module JsTestDriver
136
144
  config.excludes('src/foo.js')
137
145
 
138
146
  # then
139
- assert_config_includes config, 'exclude' => ['src/foo.js']
147
+ assert_config_includes config, 'exclude' => paths(['src/foo.js'])
140
148
  end
141
149
 
142
150
  def test_empty_config_file
@@ -180,7 +188,7 @@ module JsTestDriver
180
188
  config.includes "a/a", "/b/b", "../c"
181
189
 
182
190
  # then
183
- assert_config_includes config, 'load' => ["../../..#{pwd}/a/a", '../../../b/b', "../../..#{File.expand_path('../c')}"]
191
+ assert_config_includes config, 'load' => paths(["a/a", '/b/b', "../c"])
184
192
  end
185
193
 
186
194
  def test_config_with_html_fixtures
@@ -192,7 +200,7 @@ module JsTestDriver
192
200
  config.fixtures "fixture/directory", :name => "fixture_name", :namespace => "fixture_namespace"
193
201
 
194
202
  # then
195
- assert_config_includes config, 'load' => ["fixtures/fixture_namespace/fixture_name.js"]
203
+ assert_config_includes config, 'load' => paths(["configs/fixtures/fixture_namespace/fixture_name.js"])
196
204
  end
197
205
 
198
206
  def test_should_save_fixtures
@@ -4,7 +4,7 @@ module JsTestDriver
4
4
  class RunnerTest < Test::Unit::TestCase
5
5
 
6
6
  def given_a_runner(opts = {})
7
- return JsTestDriver::Runner.new(opts)
7
+ return JsTestDriver::Runner.new(opts)
8
8
  end
9
9
 
10
10
  def test_should_have_default_config_path
@@ -35,6 +35,10 @@ module JsTestDriver
35
35
  JsTestDriver::Runner::Command.any_instance.expects(:system).with(cmd)
36
36
  end
37
37
 
38
+ def expect_spawn(cmd)
39
+ JsTestDriver::Runner.any_instance.expects(:spawn).with(cmd)
40
+ end
41
+
38
42
  def test_should_run_server_with_given_port_number
39
43
  config = JsTestDriver::Config.new(:port => 6666)
40
44
  runner = given_a_runner(:config => config)
@@ -60,18 +64,12 @@ module JsTestDriver
60
64
  runner.run_tests('MyTestCase.some_test')
61
65
  end
62
66
 
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
67
  def test_should_capture_default_browsers
72
68
  runner = given_a_runner(:config => JsTestDriver::Config.new(:browsers => ['foo', 'bar', 'baz']))
73
69
 
74
- expect_command_to_be_executed("java -jar #{runner.jar_path} --config #{runner.config_yml_path} --browser foo,bar,baz")
70
+ ['foo', 'bar', 'baz'].each do |browser|
71
+ expect_spawn("#{browser} 'http://localhost:4224/capture'")
72
+ end
75
73
 
76
74
  runner.capture_browsers
77
75
  end
@@ -79,7 +77,9 @@ module JsTestDriver
79
77
  def test_should_capture_given_browsers
80
78
  runner = given_a_runner(:config => JsTestDriver::Config.new(:browsers => ['foo', 'bar', 'baz']))
81
79
 
82
- expect_command_to_be_executed("java -jar #{runner.jar_path} --config #{runner.config_yml_path} --browser aaa,bbb")
80
+ ['aaa', 'bbb'].each do |browser|
81
+ expect_spawn("#{browser} 'http://localhost:4224/capture'")
82
+ end
83
83
 
84
84
  runner.capture_browsers('aaa,bbb')
85
85
  end
@@ -93,4 +93,4 @@ module JsTestDriver
93
93
  end
94
94
 
95
95
  end
96
- end
96
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 3
9
- version: 0.3.3
8
+ - 4
9
+ version: 0.3.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Adam Pohorecki