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 +1 -1
- data/README.rdoc +1 -1
- data/jstd-runner.gemspec +1 -1
- data/lib/jstd-runner/{JsTestDriver-1.2.2.jar → JsTestDriver-1.3.2.jar} +0 -0
- data/lib/jstd-runner/browser.rb +6 -5
- data/lib/jstd-runner/cli.rb +4 -0
- data/lib/jstd-runner/runner.rb +18 -1
- data/lib/jstd-runner/server.rb +1 -1
- data/lib/jstd-runner/version.rb +1 -1
- data/lib/jstd-runner.rb +15 -0
- data/spec/jstd-runner/cli_spec.rb +5 -0
- data/spec/jstd-runner/runner_spec.rb +17 -0
- data/spec/jstd-runner/server_spec.rb +4 -0
- metadata +8 -37
data/LICENSE
CHANGED
data/README.rdoc
CHANGED
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.
|
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"
|
Binary file
|
data/lib/jstd-runner/browser.rb
CHANGED
@@ -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
|
-
|
48
|
+
status_spans.map { |e| e.text }.inspect
|
48
49
|
end
|
49
50
|
|
50
51
|
private
|
51
52
|
|
52
|
-
def
|
53
|
+
def status_spans
|
53
54
|
unless @switched
|
54
|
-
@browser.switch_to.frame("
|
55
|
+
@browser.switch_to.frame(@browser.find_element(:tag_name => "frame"))
|
55
56
|
@switched = true
|
56
57
|
end
|
57
58
|
|
58
|
-
@browser.
|
59
|
+
@browser.find_elements(:tag_name => "span")
|
59
60
|
end
|
60
61
|
|
61
62
|
end
|
data/lib/jstd-runner/cli.rb
CHANGED
@@ -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
|
|
data/lib/jstd-runner/runner.rb
CHANGED
@@ -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
|
data/lib/jstd-runner/server.rb
CHANGED
@@ -8,7 +8,7 @@ module JstdRunner
|
|
8
8
|
class StopError < StandardError
|
9
9
|
end
|
10
10
|
|
11
|
-
JAR = File.expand_path("../JsTestDriver-1.
|
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
|
data/lib/jstd-runner/version.rb
CHANGED
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
|
@@ -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:
|
5
|
-
|
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:
|
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
|
-
|
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.
|
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.
|
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:
|