js-test-server 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,11 @@
1
+ 0.2.7
2
+ - Fixed issue where Jasmine Runner hangs when there is no window.console
3
+ - Fixed selenium runner for Jasmine.
4
+
5
+ 0.2.6
6
+ - All js files are loaded, instead of *_spec.js.
7
+
8
+ 0.2.5
1
9
  - Renamed JsTestServer::Representations to JsTestServer::Views
2
10
  - Added JsTestServer::Views::Spec.project_js_files and .project_css_files
3
11
  - Updated to erector 0.6.7, which fixes a bug related to including modules into Views.
@@ -29,4 +37,4 @@
29
37
  - Added JsTestCore::WebRoot.dispatch_specs and .dispatch_strategy
30
38
  - Extracted JsTestCore::Resources::Specs::SpecDir
31
39
  - Extracted JsTestCore::Resources::Specs::SpecFile
32
- - No longer depending on Guid. The child libraries are responsible for obtaining the Selenium session_id from the client by using top.runOptions.getSessionId().
40
+ - No longer depending on Guid. The child libraries are responsible for obtaining the Selenium session_id from the client by using top.runOptions.getSessionId().
data/Rakefile CHANGED
@@ -28,7 +28,7 @@ def run_suite
28
28
  end
29
29
 
30
30
  PKG_NAME = "js-test-server"
31
- PKG_VERSION = "0.2.6"
31
+ PKG_VERSION = "0.2.7"
32
32
  PKG_FILES = FileList[
33
33
  '[A-Z]*',
34
34
  '*.rb',
@@ -96,9 +96,10 @@ module JsTestServer
96
96
  end
97
97
 
98
98
  def poll
99
- raw_status = selenium_client.get_eval("window.JsTestServer.status()")
99
+ raw_status = selenium_client.get_eval("window.JsTestServer ? window.JsTestServer.status() : ''")
100
100
  unless raw_status.to_s == ""
101
101
  @current_status = JSON.parse(raw_status)
102
+ # puts "#{__FILE__}:#{__LINE__} #{console.inspect}"
102
103
  end
103
104
  end
104
105
 
@@ -126,4 +127,4 @@ module JsTestServer
126
127
  end
127
128
  end
128
129
  end
129
- end
130
+ end
@@ -14,7 +14,7 @@ class JsTestServer::Server::Resources::SpecFile < JsTestServer::Server::Resource
14
14
  def do_get
15
15
  if ::File.exists?(absolute_path)
16
16
  if ::File.directory?(absolute_path)
17
- spec_files = ::Dir["#{absolute_path}/**/*_spec.js"].map do |file|
17
+ spec_files = ::Dir["#{absolute_path}/**/*.js"].map do |file|
18
18
  ["#{relative_path}#{file.gsub(absolute_path, "")}"]
19
19
  end
20
20
  get_generated_spec(absolute_path, spec_files)
@@ -44,4 +44,4 @@ class JsTestServer::Server::Resources::SpecFile < JsTestServer::Server::Resource
44
44
  def absolute_path
45
45
  @absolute_path ||= ::File.expand_path("#{spec_path}#{relative_path.gsub(%r{^/specs}, "")}")
46
46
  end
47
- end
47
+ end
@@ -26,6 +26,14 @@ class JsTestServer::Server::Views::Page < Erector::Widget
26
26
  yield(self)
27
27
  end
28
28
 
29
+ def javascript(params={})
30
+ if params[:src]
31
+ script({:type => "text/javascript"}.merge(params))
32
+ else
33
+ super
34
+ end
35
+ end
36
+
29
37
  def path
30
38
  helpers.rack_request.path_info
31
39
  end
@@ -12,9 +12,7 @@ class JsTestServer::Server::Views::Suites::Jasmine < JsTestServer::Server::Views
12
12
  link :rel => "stylesheet", :href => "/framework/jasmine.css"
13
13
  project_css_files
14
14
  spec_script_elements
15
- script <<-JS
16
- JsTestServer.JasmineDriver.init();
17
- JS
15
+ javascript "JsTestServer.JasmineDriver.init();"
18
16
 
19
17
  end
20
18
 
@@ -29,4 +27,4 @@ class JsTestServer::Server::Views::Suites::Jasmine < JsTestServer::Server::Views
29
27
  def body_content
30
28
  div :id => "jasmine_content"
31
29
  end
32
- end
30
+ end
@@ -1,8 +1,6 @@
1
1
  (function() {
2
2
  function JsTestServer() {
3
3
  }
4
-
5
- ;
6
4
  window.JsTestServer = JsTestServer;
7
5
 
8
6
  JsTestServer.status = function() {
@@ -20,7 +18,6 @@
20
18
  for (var attribute in attributes) {
21
19
  html += (" " + attribute + "='" + attributes[attribute]) + "'";
22
20
  }
23
- ;
24
21
  html += "></";
25
22
  html += name;
26
23
  html += ">";
@@ -2,61 +2,62 @@ JsTestServer.JasmineDriver = {};
2
2
 
3
3
  JsTestServer.JasmineDriver.init = function() {
4
4
  JsTestServer.JasmineDriver.instance = new JsTestServer.JasmineDriver.Instance();
5
- JsTestServer.JasmineDriver.instance.start();
5
+ JsTestServer.JasmineDriver.instance.init();
6
+ JsTestServer.JasmineDriver.instance.startJasmine();
6
7
  };
7
8
 
8
9
  JsTestServer.JasmineDriver.Instance = function() {
9
10
  };
10
11
 
11
12
  (function(Instance) {
12
- var jsTestServerConsole = "";
13
- var reporter;
13
+ var jsTestServerReporter;
14
14
 
15
- Instance.prototype.start = function() {
16
- this.addJasmineReporter();
15
+ Instance.prototype.init = function() {
17
16
  this.defineStatusMethod();
18
- this.startJasmine();
19
- };
20
-
21
- Instance.prototype.addJasmineReporter = function() {
22
- reporter = new JsTestServer.JasmineDriver.Reporter();
23
- jasmine.getEnv().addReporter(reporter);
24
17
  };
25
18
 
26
19
  Instance.prototype.defineStatusMethod = function() {
27
20
  JsTestServer.status = function() {
28
21
  var runnerState;
29
- if(jasmine.getEnv().currentRunner.finished) {
30
- if(jasmine.getEnv().currentRunner.getResults().failedCount == 0) {
31
- runnerState = "passed";
32
- } else {
33
- runnerState = "failed";
34
- }
35
- } else {
36
- runnerState = "running";
37
- }
22
+ var jasmineEnv = jasmine.getEnv();
23
+ jasmineEnv.reporter.log("jsTestServerReporter.finished: " + jsTestServerReporter.finished)
38
24
 
39
25
  return JsTestServer.JSON.stringify({
40
- "runner_state": runnerState,
41
- "console": jsTestServerConsole
26
+ "runner_state": jsTestServerReporter.runnerState,
27
+ "console": jsTestServerReporter.console
42
28
  });
43
29
  };
44
30
  };
45
31
 
46
32
  Instance.prototype.startJasmine = function() {
47
33
  var jasmineEnv = jasmine.getEnv();
48
- var jsApiReporter = new jasmine.JsApiReporter();
49
- jasmineEnv.addReporter(jsApiReporter);
34
+ jsTestServerReporter = new JsTestServer.JasmineDriver.Reporter();
35
+ jasmineEnv.addReporter(jsTestServerReporter);
36
+ jasmineEnv.addReporter(new jasmine.JsApiReporter());
37
+ jasmine.TrivialReporter.prototype.log = function() {
38
+ if (window.console && window.console.log) window.console.log.apply(window.console, arguments);
39
+ };
50
40
  jasmineEnv.addReporter(new jasmine.TrivialReporter());
41
+
51
42
  window.onload = function() {
52
43
  jasmineEnv.execute();
53
- };
44
+ }
54
45
  };
55
46
 
56
47
  JsTestServer.JasmineDriver.Reporter = function() {
48
+ this.console = "";
49
+ this.finished = false;
50
+ this.runnerState = "running";
57
51
  };
58
52
  JsTestServer.JasmineDriver.Reporter.prototype.log = function(str) {
59
- jsTestServerConsole += str;
60
- jsTestServerConsole += "\n";
53
+ this.console += (str + "\n");
61
54
  };
55
+ JsTestServer.JasmineDriver.Reporter.prototype.reportRunnerResults = function(runner) {
56
+ this.finished = true;
57
+ if (runner.results().failedCount == 0) {
58
+ this.runnerState = "passed";
59
+ } else {
60
+ this.runnerState = "failed";
61
+ }
62
+ }
62
63
  })(JsTestServer.JasmineDriver.Instance);
@@ -3,7 +3,7 @@ require File.expand_path("#{File.dirname(__FILE__)}/../functional_spec_helper")
3
3
  describe JsTestServer do
4
4
  start_servers("jasmine")
5
5
  attr_reader :stdout, :request
6
-
6
+
7
7
  before do
8
8
  @stdout = StringIO.new
9
9
  JsTestServer::Client.const_set(:STDOUT, stdout)
@@ -36,19 +36,19 @@ module JsTestServer
36
36
  mock.proxy(driver).start.ordered
37
37
  mock.proxy(driver).open("/specs").ordered
38
38
 
39
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
39
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
40
40
  {"runner_state" => RUNNING_RUNNER_STATE, "console" => ""}.to_json
41
41
  end
42
42
 
43
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
43
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
44
44
  {"runner_state" => RUNNING_RUNNER_STATE, "console" => ".."}.to_json
45
45
  end
46
46
 
47
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
47
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
48
48
  {"runner_state" => RUNNING_RUNNER_STATE, "console" => "...F."}.to_json
49
49
  end
50
50
 
51
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
51
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
52
52
  {"runner_state" => FAILED_RUNNER_STATE, "console" => "...F..\n\nFailure\n/specs/foo_spec.js"}.to_json
53
53
  end
54
54
 
@@ -61,19 +61,19 @@ module JsTestServer
61
61
  mock.proxy(driver).start.ordered
62
62
  mock.proxy(driver).open("/specs").ordered
63
63
 
64
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
64
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
65
65
  {"runner_state" => RUNNING_RUNNER_STATE, "console" => ""}.to_json
66
66
  end
67
67
 
68
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
68
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
69
69
  {"runner_state" => RUNNING_RUNNER_STATE, "console" => ".."}.to_json
70
70
  end
71
71
 
72
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
72
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
73
73
  {"runner_state" => RUNNING_RUNNER_STATE, "console" => "....."}.to_json
74
74
  end
75
75
 
76
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
76
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
77
77
  {"runner_state" => PASSED_RUNNER_STATE, "console" => "......\n\nPassed"}.to_json
78
78
  end
79
79
 
@@ -100,19 +100,19 @@ module JsTestServer
100
100
  mock.proxy(driver).start.ordered
101
101
  mock.proxy(driver).open("/specs/path").ordered
102
102
 
103
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
103
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
104
104
  {"runner_state" => RUNNING_RUNNER_STATE, "console" => ""}.to_json
105
105
  end
106
106
 
107
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
107
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
108
108
  {"runner_state" => RUNNING_RUNNER_STATE, "console" => ".."}.to_json
109
109
  end
110
110
 
111
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
111
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
112
112
  {"runner_state" => RUNNING_RUNNER_STATE, "console" => "....."}.to_json
113
113
  end
114
114
 
115
- mock.strong(driver).get_eval("window.JsTestServer.status()") do
115
+ mock.strong(driver).get_eval("window.JsTestServer ? window.JsTestServer.status() : ''") do
116
116
  {"runner_state" => PASSED_RUNNER_STATE, "console" => "......\n\nPassed"}.to_json
117
117
  end
118
118
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js-test-server
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 6
10
- version: 0.2.6
9
+ - 7
10
+ version: 0.2.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brian Takita
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-05-31 00:00:00 -07:00
18
+ date: 2010-06-01 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency