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 +1 -1
- data/lib/js_test_driver/config.rb +7 -14
- data/lib/js_test_driver/runner.rb +9 -6
- data/lib/js_test_driver/version.rb +1 -1
- data/test/unit/config_test.rb +16 -8
- data/test/unit/runner_test.rb +12 -12
- metadata +2 -2
    
        data/Gemfile.lock
    CHANGED
    
    
| @@ -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  | 
| 169 | 
            -
                   | 
| 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|  | 
| 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 | 
            -
                   | 
| 61 | 
            +
                  browsers ||= ''
         | 
| 62 | 
            +
                  browsers = browsers.split(',')
         | 
| 63 | 
            +
                  browsers = config.browsers if browsers.empty?
         | 
| 62 64 |  | 
| 63 | 
            -
                   | 
| 64 | 
            -
                  add_capture_browsers(command, browsers)
         | 
| 65 | 
            +
                  url = config.server + "/capture"
         | 
| 65 66 |  | 
| 66 | 
            -
                   | 
| 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)
         | 
    
        data/test/unit/config_test.rb
    CHANGED
    
    | @@ -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' => [" | 
| 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
         | 
    
        data/test/unit/runner_test.rb
    CHANGED
    
    | @@ -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 | 
            -
                   | 
| 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 | 
            -
                   | 
| 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
         |