js-test-server 0.2.6 → 0.2.7

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/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