jstd-runner 0.0.2 → 0.0.3

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/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2010 FINN.no AS
1
+ Copyright 2010-2011 FINN.no AS
2
2
 
3
3
  Licensed under the Apache License, Version 2.0 (the "License");
4
4
  you may not use this file except in compliance with the License.
data/README.rdoc CHANGED
@@ -22,4 +22,4 @@ A gem that provides a tool to launch a JsTestDriver server, capture browser(s) a
22
22
 
23
23
  == Copyright
24
24
 
25
- Copyright (c) 2010 FINN.no. See LICENSE for details.
25
+ Copyright (c) 2010-2011 FINN.no. See LICENSE for details.
data/jstd-runner.gemspec CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
17
17
  s.require_path = 'lib'
18
18
 
19
- s.add_dependency "selenium-webdriver", "0.1.0"
19
+ s.add_dependency "selenium-webdriver", ">= 0.1.4"
20
20
  s.add_dependency "eventmachine", "0.12.10"
21
21
  s.add_dependency "mail", "2.2.10"
22
22
  s.add_dependency "daemons", "1.1.0"
@@ -39,23 +39,24 @@ module JstdRunner
39
39
  def running?
40
40
  Log.info "browser state: #{status}"
41
41
  true
42
- rescue
42
+ rescue => ex
43
+ Log.warn "#{self}#running? caught #{ex.message}"
43
44
  false
44
45
  end
45
46
 
46
47
  def status
47
- status_span.text
48
+ status_spans.map { |e| e.text }.inspect
48
49
  end
49
50
 
50
51
  private
51
52
 
52
- def status_span
53
+ def status_spans
53
54
  unless @switched
54
- @browser.switch_to.frame("0")
55
+ @browser.switch_to.frame(@browser.find_element(:tag_name => "frame"))
55
56
  @switched = true
56
57
  end
57
58
 
58
- @browser.find_element(:tag_name => "span")
59
+ @browser.find_elements(:tag_name => "span")
59
60
  end
60
61
 
61
62
  end
@@ -39,6 +39,10 @@ module JstdRunner
39
39
  op.on("-n", "--notify email1,email2,email3", Array) do |emails|
40
40
  runner.options[:emails] = emails
41
41
  end
42
+
43
+ op.on("-r", "--restart hour:minute") do |hour_minute|
44
+ runner.options[:restart_at] = hour_minute
45
+ end
42
46
  }.parse!(args)
43
47
  end
44
48
 
@@ -6,7 +6,8 @@ module JstdRunner
6
6
  :vnc => false,
7
7
  :monitor_interval => 10,
8
8
  :browser => :firefox,
9
- :daemonize => false
9
+ :daemonize => false,
10
+ :restart_at => nil
10
11
  }
11
12
 
12
13
  attr_reader :options
@@ -26,6 +27,7 @@ module JstdRunner
26
27
  start_server
27
28
  start_browser
28
29
  capture_browser
30
+ setup_restarts if options[:restart_at]
29
31
  }
30
32
  end
31
33
 
@@ -94,6 +96,7 @@ module JstdRunner
94
96
 
95
97
  def start_browser
96
98
  start_vnc if options[:vnc]
99
+
97
100
  browser.start
98
101
  browser.monitor(options[:monitor_interval]) {
99
102
  browser.restart
@@ -111,6 +114,20 @@ module JstdRunner
111
114
  browser.stop
112
115
  end
113
116
 
117
+ def setup_restarts
118
+ EM.daily options[:restart_at] do
119
+ Log.warn "daily restart"
120
+ restart
121
+ Log.warn "daily restart finished."
122
+ end
123
+ end
124
+
125
+ def restart
126
+ browser.restart
127
+ server.restart
128
+ capture_browser
129
+ end
130
+
114
131
  def start_vnc
115
132
  vnc.start
116
133
  ENV['DISPLAY'] = vnc.display
@@ -8,7 +8,7 @@ module JstdRunner
8
8
  class StopError < StandardError
9
9
  end
10
10
 
11
- JAR = File.expand_path("../JsTestDriver-1.2.2.jar", __FILE__)
11
+ JAR = File.expand_path("../JsTestDriver-1.3.2.jar", __FILE__)
12
12
  LAUNCH_TIMEOUT = 120 # this is huge, but I've seen it happen
13
13
 
14
14
  attr_reader :host, :port
@@ -1,3 +1,3 @@
1
1
  module JstdRunner
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/jstd-runner.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "logger"
2
2
  require "optparse"
3
3
  require "etc"
4
+ require 'time'
4
5
 
5
6
  module JstdRunner
6
7
  Log = Logger.new(STDOUT)
@@ -25,3 +26,17 @@ require "jstd-runner/server"
25
26
  require "jstd-runner/runner"
26
27
 
27
28
 
29
+ module EventMachine
30
+ def self.daily at, &blk
31
+ time = Time.parse(at) - Time.now
32
+ time += 86400 if time < 0
33
+
34
+ EM.run do
35
+ run_me = proc{
36
+ EM.add_timer(86400, run_me)
37
+ blk.call
38
+ }
39
+ EM.add_timer(time, run_me)
40
+ end
41
+ end
42
+ end
@@ -43,5 +43,10 @@ module JstdRunner
43
43
  runner.should_receive(:run)
44
44
  cli.run
45
45
  end
46
+
47
+ it "configures restarts" do
48
+ cli "--restart 01:15"
49
+ runner.options[:restart_at].should == "01:15"
50
+ end
46
51
  end
47
52
  end
@@ -35,6 +35,23 @@ module JstdRunner
35
35
  runner.run
36
36
  end
37
37
 
38
+ it "sets up restarts" do
39
+ browser = mock(Browser).as_null_object
40
+ server = mock(Server, :host => "localhost", :port => 1234).as_null_object
41
+
42
+ runner.stub!(:browser).and_return browser
43
+ runner.stub!(:server).and_return server
44
+
45
+ EM.should_receive(:daily).with("01:15").and_yield
46
+ runner.options[:restart_at] = "01:15"
47
+
48
+ server.should_receive(:restart)
49
+ browser.should_receive(:restart)
50
+ browser.should_receive(:capture).with("localhost", 1234).twice
51
+
52
+ runner.run
53
+ end
54
+
38
55
  # TODO: more specs here
39
56
  end
40
57
  end
@@ -8,6 +8,10 @@ module JstdRunner
8
8
  let(:connected_poller) { mock(:connected? => true, :closed? => false) }
9
9
  let(:closed_poller) { mock(:connected? => false, :closed? => true) }
10
10
 
11
+ it "has a correct reference to the bundled jar" do
12
+ File.exist?(Server::JAR).should be_true
13
+ end
14
+
11
15
  it "launches the server on the given port" do
12
16
  server.stub!(:immediate_poller => closed_poller)
13
17
 
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jstd-runner
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 2
9
- version: 0.0.2
4
+ prerelease:
5
+ version: 0.0.3
10
6
  platform: ruby
11
7
  authors:
12
8
  - Jari Bakken
@@ -14,8 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2010-11-26 00:00:00 +01:00
18
- default_executable:
13
+ date: 2011-04-13 00:00:00 Z
19
14
  dependencies:
20
15
  - !ruby/object:Gem::Dependency
21
16
  name: selenium-webdriver
@@ -23,13 +18,9 @@ dependencies:
23
18
  requirement: &id001 !ruby/object:Gem::Requirement
24
19
  none: false
25
20
  requirements:
26
- - - "="
21
+ - - ">="
27
22
  - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- - 1
31
- - 0
32
- version: 0.1.0
23
+ version: 0.1.4
33
24
  type: :runtime
34
25
  version_requirements: *id001
35
26
  - !ruby/object:Gem::Dependency
@@ -40,10 +31,6 @@ dependencies:
40
31
  requirements:
41
32
  - - "="
42
33
  - !ruby/object:Gem::Version
43
- segments:
44
- - 0
45
- - 12
46
- - 10
47
34
  version: 0.12.10
48
35
  type: :runtime
49
36
  version_requirements: *id002
@@ -55,10 +42,6 @@ dependencies:
55
42
  requirements:
56
43
  - - "="
57
44
  - !ruby/object:Gem::Version
58
- segments:
59
- - 2
60
- - 2
61
- - 10
62
45
  version: 2.2.10
63
46
  type: :runtime
64
47
  version_requirements: *id003
@@ -70,10 +53,6 @@ dependencies:
70
53
  requirements:
71
54
  - - "="
72
55
  - !ruby/object:Gem::Version
73
- segments:
74
- - 1
75
- - 1
76
- - 0
77
56
  version: 1.1.0
78
57
  type: :runtime
79
58
  version_requirements: *id004
@@ -85,10 +64,6 @@ dependencies:
85
64
  requirements:
86
65
  - - ">="
87
66
  - !ruby/object:Gem::Version
88
- segments:
89
- - 2
90
- - 0
91
- - 0
92
67
  version: 2.0.0
93
68
  type: :development
94
69
  version_requirements: *id005
@@ -111,7 +86,7 @@ files:
111
86
  - bin/jstd-runner
112
87
  - jstd-runner.gemspec
113
88
  - lib/jstd-runner.rb
114
- - lib/jstd-runner/JsTestDriver-1.2.2.jar
89
+ - lib/jstd-runner/JsTestDriver-1.3.2.jar
115
90
  - lib/jstd-runner/browser.rb
116
91
  - lib/jstd-runner/cli.rb
117
92
  - lib/jstd-runner/monitorable.rb
@@ -126,7 +101,6 @@ files:
126
101
  - spec/jstd-runner/server_spec.rb
127
102
  - spec/jstd-runner/vnc_control_spec.rb
128
103
  - spec/spec_helper.rb
129
- has_rdoc: true
130
104
  homepage: http://github.com/jarib/jstd-runner
131
105
  licenses: []
132
106
 
@@ -140,23 +114,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
114
  requirements:
141
115
  - - ">="
142
116
  - !ruby/object:Gem::Version
143
- segments:
144
- - 0
145
117
  version: "0"
146
118
  required_rubygems_version: !ruby/object:Gem::Requirement
147
119
  none: false
148
120
  requirements:
149
121
  - - ">="
150
122
  - !ruby/object:Gem::Version
151
- segments:
152
- - 0
153
123
  version: "0"
154
124
  requirements: []
155
125
 
156
126
  rubyforge_project:
157
- rubygems_version: 1.3.7
127
+ rubygems_version: 1.7.2
158
128
  signing_key:
159
129
  specification_version: 3
160
130
  summary: JsTestDriver wrapper
161
131
  test_files: []
162
132
 
133
+ has_rdoc: