js-test-driver-rails 0.4.3 → 0.5.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,28 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
+
3
+ module JsTestDriver
4
+ class RunTest < Test::Unit::TestCase
5
+
6
+ def test_should_run_with_all_arguments_at_once
7
+ config.browser 'foo', 'bar', 'baz'
8
+
9
+ application.run(:tests => 'TestCase',
10
+ :browsers => 'aaa,bbb',
11
+ :output_xml => true,
12
+ :capture_console => true)
13
+
14
+ assert_run("java -jar #{runtime_config.jar_path} --serverHandlerPrefix jstd --port 4224 --config #{runtime_config.config_yml_path} --browser aaa,bbb --tests TestCase --testOutput #{runtime_config.test_xml_data_path} --captureConsole")
15
+ end
16
+
17
+ def test_when_measuring_coverage
18
+ config.measure_coverage
19
+ config.browser 'foo'
20
+
21
+ application.run(:output_xml => true)
22
+
23
+ assert_run("genhtml -o #{runtime_config.coverage_files_path} #{runtime_config.coverage_data_file}")
24
+ end
25
+
26
+ end
27
+ end
28
+
@@ -0,0 +1,20 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
+
3
+ module JsTestDriver
4
+ class RunTestsTest < Test::Unit::TestCase
5
+
6
+ def test_should_run_all_tests_by_default
7
+ application.run_tests
8
+
9
+ assert_run("java -jar #{runtime_config.jar_path} --serverHandlerPrefix jstd --config #{runtime_config.config_yml_path} --tests all")
10
+ end
11
+
12
+ def test_should_run_selected_tests
13
+ application.run_tests(:tests => 'MyTestCase.some_test')
14
+
15
+ assert_run("java -jar #{runtime_config.jar_path} --serverHandlerPrefix jstd --config #{runtime_config.config_yml_path} --tests MyTestCase.some_test")
16
+ end
17
+
18
+ end
19
+ end
20
+
@@ -0,0 +1,19 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
+
3
+ module JsTestDriver
4
+ class RuntimeConfigTest < Test::Unit::TestCase
5
+
6
+ def test_should_have_default_config_path
7
+ assert application.runtime_config.config_path
8
+ end
9
+
10
+ def test_should_have_default_jar_path
11
+ assert application.runtime_config.jar_path
12
+ end
13
+
14
+ def test_should_have_default_tmp_path
15
+ assert application.runtime_config.config_yml_path
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
2
+
3
+ module JsTestDriver
4
+ class StartServerTest < Test::Unit::TestCase
5
+
6
+ def test_should_run_server_with_given_port_number
7
+ application.config.port(6666)
8
+
9
+ application.start_server
10
+
11
+ assert_run("java -jar #{runtime_config.jar_path} --serverHandlerPrefix jstd --port #{config.port}")
12
+ end
13
+
14
+ end
15
+ end
@@ -108,14 +108,15 @@ describe = intercept('describe');
108
108
  beforeEach = intercept('beforeEach');
109
109
  afterEach = intercept('afterEach');
110
110
 
111
- var template = TestCase('Jasmine Adapter Tests', null, 'jasmine test case');
111
+ var JASMINE_TYPE = 'jasmine test case';
112
+ TestCase('Jasmine Adapter Tests', null, JASMINE_TYPE);
112
113
 
113
114
  jstestdriver.pluginRegistrar.register({
114
115
 
115
116
  name: 'jasmine',
116
117
 
117
118
  runTestConfiguration: function(config, onTestDone, onComplete){
118
- if (config.testCaseInfo_.template_ !== template) return;
119
+ if (config.getTestCaseInfo().getType() != JASMINE_TYPE) return false;
119
120
  (jasmine.currentEnv_ = new Env(onTestDone, onComplete)).execute();
120
121
  return true;
121
122
  },
data/vendor/jasmine.js CHANGED
@@ -22,6 +22,12 @@ jasmine.unimplementedMethod_ = function() {
22
22
  */
23
23
  jasmine.undefined = jasmine.___undefined___;
24
24
 
25
+ /**
26
+ * Show diagnostic messages in the console if set to true
27
+ *
28
+ */
29
+ jasmine.VERBOSE = false;
30
+
25
31
  /**
26
32
  * Default interval in milliseconds for event loop yields (e.g. to allow network activity or to refresh the screen with the HTML-based runner). Small values here may result in slow test running. Zero means no updates until all tests have completed.
27
33
  *
@@ -74,7 +80,7 @@ jasmine.MessageResult = function(values) {
74
80
 
75
81
  jasmine.MessageResult.prototype.toString = function() {
76
82
  var text = "";
77
- for(var i = 0; i < this.values.length; i++) {
83
+ for (var i = 0; i < this.values.length; i++) {
78
84
  if (i > 0) text += " ";
79
85
  if (jasmine.isString_(this.values[i])) {
80
86
  text += this.values[i];
@@ -91,9 +97,10 @@ jasmine.ExpectationResult = function(params) {
91
97
  this.passed_ = params.passed;
92
98
  this.expected = params.expected;
93
99
  this.actual = params.actual;
94
-
95
100
  this.message = this.passed_ ? 'Passed.' : params.message;
96
- this.trace = this.passed_ ? '' : new Error(this.message);
101
+
102
+ var trace = (params.trace || new Error(this.message));
103
+ this.trace = this.passed_ ? '' : trace;
97
104
  };
98
105
 
99
106
  jasmine.ExpectationResult.prototype.toString = function () {
@@ -119,7 +126,7 @@ jasmine.getEnv = function() {
119
126
  * @returns {Boolean}
120
127
  */
121
128
  jasmine.isArray_ = function(value) {
122
- return jasmine.isA_("Array", value);
129
+ return jasmine.isA_("Array", value);
123
130
  };
124
131
 
125
132
  /**
@@ -587,17 +594,25 @@ jasmine.XmlHttpRequest = (typeof XMLHttpRequest == "undefined") ? function() {
587
594
  try {
588
595
  return f();
589
596
  } catch(e) {
590
- }
597
+ }
591
598
  return null;
592
599
  }
593
-
594
- var xhr = tryIt(function(){return new ActiveXObject("Msxml2.XMLHTTP.6.0");}) ||
595
- tryIt(function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0");}) ||
596
- tryIt(function(){return new ActiveXObject("Msxml2.XMLHTTP");}) ||
597
- tryIt(function(){return new ActiveXObject("Microsoft.XMLHTTP");});
600
+
601
+ var xhr = tryIt(function() {
602
+ return new ActiveXObject("Msxml2.XMLHTTP.6.0");
603
+ }) ||
604
+ tryIt(function() {
605
+ return new ActiveXObject("Msxml2.XMLHTTP.3.0");
606
+ }) ||
607
+ tryIt(function() {
608
+ return new ActiveXObject("Msxml2.XMLHTTP");
609
+ }) ||
610
+ tryIt(function() {
611
+ return new ActiveXObject("Microsoft.XMLHTTP");
612
+ });
598
613
 
599
614
  if (!xhr) throw new Error("This browser does not support XMLHttpRequest.");
600
-
615
+
601
616
  return xhr;
602
617
  } : XMLHttpRequest;
603
618
  /**
@@ -773,14 +788,14 @@ jasmine.Env.prototype.describe = function(description, specDefinitions) {
773
788
  declarationError = e;
774
789
  }
775
790
 
776
- this.currentSuite = parentSuite;
777
-
778
791
  if (declarationError) {
779
792
  this.it("encountered a declaration exception", function() {
780
793
  throw declarationError;
781
794
  });
782
795
  }
783
796
 
797
+ this.currentSuite = parentSuite;
798
+
784
799
  return suite;
785
800
  };
786
801
 
@@ -1318,13 +1333,13 @@ jasmine.Matchers.prototype.toHaveBeenCalledWith = function() {
1318
1333
  if (this.actual.callCount === 0) {
1319
1334
  // todo: what should the failure message for .not.toHaveBeenCalledWith() be? is this right? test better. [xw]
1320
1335
  return [
1321
- "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was never called.",
1322
- "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was."
1336
+ "Expected spy " + this.actual.identity + " to have been called with " + jasmine.pp(expectedArgs) + " but it was never called.",
1337
+ "Expected spy " + this.actual.identity + " not to have been called with " + jasmine.pp(expectedArgs) + " but it was."
1323
1338
  ];
1324
1339
  } else {
1325
1340
  return [
1326
- "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall),
1327
- "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall)
1341
+ "Expected spy " + this.actual.identity + " to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall),
1342
+ "Expected spy " + this.actual.identity + " not to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall)
1328
1343
  ];
1329
1344
  }
1330
1345
  };
@@ -1379,6 +1394,23 @@ jasmine.Matchers.prototype.toBeGreaterThan = function(expected) {
1379
1394
  return this.actual > expected;
1380
1395
  };
1381
1396
 
1397
+ /**
1398
+ * Matcher that checks that the expected item is equal to the actual item
1399
+ * up to a given level of decimal precision (default 2).
1400
+ *
1401
+ * @param {Number} expected
1402
+ * @param {Number} precision
1403
+ */
1404
+ jasmine.Matchers.prototype.toBeCloseTo = function(expected, precision) {
1405
+ if (!(precision === 0)) {
1406
+ precision = precision || 2;
1407
+ }
1408
+ var multiplier = Math.pow(10, precision);
1409
+ var actual = Math.round(this.actual * multiplier);
1410
+ expected = Math.round(expected * multiplier);
1411
+ return expected == actual;
1412
+ };
1413
+
1382
1414
  /**
1383
1415
  * Matcher that checks that the expected exception was thrown by the actual.
1384
1416
  *
@@ -1976,7 +2008,8 @@ jasmine.Spec.prototype.waitsFor = function(latchFunction, optional_timeoutMessag
1976
2008
  jasmine.Spec.prototype.fail = function (e) {
1977
2009
  var expectationResult = new jasmine.ExpectationResult({
1978
2010
  passed: false,
1979
- message: e ? jasmine.util.formatException(e) : 'Exception'
2011
+ message: e ? jasmine.util.formatException(e) : 'Exception',
2012
+ trace: { stack: e.stack }
1980
2013
  });
1981
2014
  this.results_.addResult(expectationResult);
1982
2015
  };
@@ -2186,7 +2219,9 @@ jasmine.WaitsBlock = function(env, timeout, spec) {
2186
2219
  jasmine.util.inherit(jasmine.WaitsBlock, jasmine.Block);
2187
2220
 
2188
2221
  jasmine.WaitsBlock.prototype.execute = function (onComplete) {
2189
- this.env.reporter.log('>> Jasmine waiting for ' + this.timeout + ' ms...');
2222
+ if (jasmine.VERBOSE) {
2223
+ this.env.reporter.log('>> Jasmine waiting for ' + this.timeout + ' ms...');
2224
+ }
2190
2225
  this.env.setTimeout(function () {
2191
2226
  onComplete();
2192
2227
  }, this.timeout);
@@ -2214,7 +2249,9 @@ jasmine.util.inherit(jasmine.WaitsForBlock, jasmine.Block);
2214
2249
  jasmine.WaitsForBlock.TIMEOUT_INCREMENT = 10;
2215
2250
 
2216
2251
  jasmine.WaitsForBlock.prototype.execute = function(onComplete) {
2217
- this.env.reporter.log('>> Jasmine waiting for ' + (this.message || 'something to happen'));
2252
+ if (jasmine.VERBOSE) {
2253
+ this.env.reporter.log('>> Jasmine waiting for ' + (this.message || 'something to happen'));
2254
+ }
2218
2255
  var latchFunctionResult;
2219
2256
  try {
2220
2257
  latchFunctionResult = this.latchFunction.apply(this.spec);
@@ -2429,7 +2466,7 @@ jasmine.getGlobal().clearInterval = function(timeoutKey) {
2429
2466
 
2430
2467
  jasmine.version_= {
2431
2468
  "major": 1,
2432
- "minor": 0,
2433
- "build": 2,
2434
- "revision": 1299565706
2469
+ "minor": 1,
2470
+ "build": 0,
2471
+ "revision": 1307546962
2435
2472
  };
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js-test-driver-rails
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.4.3
4
+ prerelease: 6
5
+ version: 0.5.0.pre1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Adam Pohorecki
@@ -10,7 +10,8 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-18 00:00:00 Z
13
+ date: 2011-06-09 00:00:00 +02:00
14
+ default_executable:
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: json
@@ -35,7 +36,7 @@ dependencies:
35
36
  type: :runtime
36
37
  version_requirements: *id002
37
38
  - !ruby/object:Gem::Dependency
38
- name: mocha
39
+ name: commander
39
40
  prerelease: false
40
41
  requirement: &id003 !ruby/object:Gem::Requirement
41
42
  none: false
@@ -43,13 +44,35 @@ dependencies:
43
44
  - - ">="
44
45
  - !ruby/object:Gem::Version
45
46
  version: "0"
46
- type: :development
47
+ type: :runtime
47
48
  version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: selenium-webdriver
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
58
+ type: :runtime
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: mocha
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: "0"
69
+ type: :development
70
+ version_requirements: *id005
48
71
  description: Use ruby to configure JsTestDriver, capture browsers and run tests.
49
72
  email:
50
73
  - adam@pohorecki.pl
51
- executables: []
52
-
74
+ executables:
75
+ - jstd
53
76
  extensions: []
54
77
 
55
78
  extra_rdoc_files: []
@@ -62,11 +85,25 @@ files:
62
85
  - LICENSE
63
86
  - README.markdown
64
87
  - Rakefile
88
+ - TODO
89
+ - bin/jstd
65
90
  - js-test-driver-rails.gemspec
66
91
  - lib/js_test_driver.rb
92
+ - lib/js_test_driver/application.rb
93
+ - lib/js_test_driver/cli/capture_browsers.rb
94
+ - lib/js_test_driver/cli/run.rb
95
+ - lib/js_test_driver/cli/run_tests.rb
96
+ - lib/js_test_driver/cli/start_server.rb
97
+ - lib/js_test_driver/commands/base_command.rb
98
+ - lib/js_test_driver/commands/generate_coverage_report.rb
99
+ - lib/js_test_driver/commands/jstd_jar_command.rb
67
100
  - lib/js_test_driver/config.rb
101
+ - lib/js_test_driver/config_factory.rb
68
102
  - lib/js_test_driver/html_fixture.rb
103
+ - lib/js_test_driver/missing_dependency_error.rb
104
+ - lib/js_test_driver/remote_browser.rb
69
105
  - lib/js_test_driver/runner.rb
106
+ - lib/js_test_driver/runtime_config.rb
70
107
  - lib/js_test_driver/tasks.rb
71
108
  - lib/js_test_driver/version.rb
72
109
  - test/fixtures/a.html
@@ -82,14 +119,19 @@ files:
82
119
  - test/sample/specs/calculator_spec.js
83
120
  - test/sample/specs/spec_helper.js
84
121
  - test/test_helper.rb
122
+ - test/unit/capture_browsers_test.rb
85
123
  - test/unit/config_test.rb
86
124
  - test/unit/html_fixture_test.rb
87
- - test/unit/runner_test.rb
125
+ - test/unit/run_test.rb
126
+ - test/unit/run_tests_test.rb
127
+ - test/unit/runtime_config_test.rb
128
+ - test/unit/start_server_test.rb
88
129
  - vendor/JasmineAdapter.js
89
130
  - vendor/VERSIONS
90
131
  - vendor/coverage.jar
91
132
  - vendor/jasmine.js
92
133
  - vendor/js_test_driver.jar
134
+ has_rdoc: true
93
135
  homepage: http://github.com/psyho/js-test-driver-rails
94
136
  licenses: []
95
137
 
@@ -107,13 +149,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
149
  required_rubygems_version: !ruby/object:Gem::Requirement
108
150
  none: false
109
151
  requirements:
110
- - - ">="
152
+ - - ">"
111
153
  - !ruby/object:Gem::Version
112
- version: "0"
154
+ version: 1.3.1
113
155
  requirements: []
114
156
 
115
157
  rubyforge_project: js-test-driver-rails
116
- rubygems_version: 1.7.2
158
+ rubygems_version: 1.6.2
117
159
  signing_key:
118
160
  specification_version: 3
119
161
  summary: A wrapper for JsTestDriver for use with ruby/rails projects
@@ -1,107 +0,0 @@
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 expect_spawn(cmd)
39
- JsTestDriver::Runner.any_instance.expects(:spawn).with(cmd)
40
- end
41
-
42
- def test_should_run_server_with_given_port_number
43
- config = JsTestDriver::Config.new(:port => 6666)
44
- runner = given_a_runner(:config => config)
45
-
46
- expect_command_to_be_executed("java -jar #{runner.jar_path} --port #{config.port}")
47
-
48
- runner.start_server
49
- end
50
-
51
- def test_should_run_all_tests_by_default
52
- runner = given_a_runner(:config => JsTestDriver::Config.new)
53
-
54
- expect_command_to_be_executed("java -jar #{runner.jar_path} --config #{runner.config_yml_path} --tests all")
55
-
56
- runner.run_tests
57
- end
58
-
59
- def test_should_run_selected_tests
60
- runner = given_a_runner(:config => JsTestDriver::Config.new)
61
-
62
- expect_command_to_be_executed("java -jar #{runner.jar_path} --config #{runner.config_yml_path} --tests MyTestCase.some_test")
63
-
64
- runner.run_tests('MyTestCase.some_test')
65
- end
66
-
67
- def test_should_capture_default_browsers
68
- runner = given_a_runner(:config => JsTestDriver::Config.new(:browsers => ['foo', 'bar', 'baz']))
69
-
70
- ['foo', 'bar', 'baz'].each do |browser|
71
- expect_spawn("#{browser} 'http://localhost:4224/capture'")
72
- end
73
-
74
- runner.capture_browsers
75
- end
76
-
77
- def test_should_capture_given_browsers
78
- runner = given_a_runner(:config => JsTestDriver::Config.new(:browsers => ['foo', 'bar', 'baz']))
79
-
80
- ['aaa', 'bbb'].each do |browser|
81
- expect_spawn("#{browser} 'http://localhost:4224/capture'")
82
- end
83
-
84
- runner.capture_browsers('aaa,bbb')
85
- end
86
-
87
- def test_should_run_with_all_arguments_at_once
88
- runner = given_a_runner(:config => JsTestDriver::Config.new(:browsers => ['foo', 'bar', 'baz']))
89
-
90
- expect_command_to_be_executed("java -jar #{runner.jar_path} --port 4224 --config #{runner.config_yml_path} --browser aaa,bbb --tests TestCase --testOutput #{File.expand_path('.js_test_driver')} --captureConsole")
91
-
92
- runner.start_server_capture_and_run('TestCase', 'aaa,bbb', '.js_test_driver', true)
93
- end
94
-
95
- def test_when_measuring_coverage
96
- config = JsTestDriver::Config.new
97
- config.measure_coverage
98
- runner = given_a_runner(:config => config)
99
-
100
- JsTestDriver::Runner::Command.any_instance.expects(:system)
101
- runner.expects(:system).with("genhtml -o #{File.expand_path('.js_test_driver/coverage')} #{File.expand_path('.js_test_driver/jsTestDriver.conf-coverage.dat')}")
102
-
103
- runner.start_server_capture_and_run(nil, 'aaa', '.js_test_driver')
104
- end
105
-
106
- end
107
- end