akephalos2 2.1.1.2 → 2.1.2
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/README.md +15 -0
- data/bin/akephalos +1 -2
- data/lib/akephalos.rb +2 -1
- data/lib/akephalos/htmlunit_downloader.rb +2 -3
- data/lib/akephalos/remote_client.rb +14 -8
- data/lib/akephalos/version.rb +1 -1
- metadata +12 -12
data/README.md
CHANGED
@@ -44,6 +44,21 @@ Akephalos creates a `.akephalos` folder where it stores HTMLUnit binaries. You s
|
|
44
44
|
git ignore .akephalos
|
45
45
|
```
|
46
46
|
|
47
|
+
### Windows
|
48
|
+
|
49
|
+
You will need to manually download HTMLUnit, extract it and save it to `.akephalos/:version`.
|
50
|
+
|
51
|
+
http://sourceforge.net/projects/htmlunit/files/htmlunit/
|
52
|
+
|
53
|
+
For example:
|
54
|
+
|
55
|
+
* Download [htmlunit-2.9-bin.zip](http://sourceforge.net/projects/htmlunit/files/latest/download?source=files)
|
56
|
+
* Extract it
|
57
|
+
* You will get a folder named `htmlunit-2.9`. Rename it to just `2.9`
|
58
|
+
* Create the folder `.akephalos` in your project folder
|
59
|
+
* Move the `2.9` folder inside `.akephalos`
|
60
|
+
|
61
|
+
You are done, run your tests.
|
47
62
|
|
48
63
|
# Questions, bugs, etc:
|
49
64
|
|
data/bin/akephalos
CHANGED
@@ -26,8 +26,7 @@ parser = OptionParser.new do |opts|
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
puts "Using #{options[:akephalos_jvm_max_memory]} MB for the JVM"
|
29
|
-
|
30
|
-
ENV['htmlunit_version'] ||= "2.9"
|
29
|
+
|
31
30
|
HtmlUnit.download_htmlunit(ENV["htmlunit_version"])
|
32
31
|
|
33
32
|
opts.on_tail("-h", "--help", "Show this message") { puts opts; exit }
|
data/lib/akephalos.rb
CHANGED
@@ -8,9 +8,10 @@ require 'pathname'
|
|
8
8
|
|
9
9
|
module Akephalos
|
10
10
|
BIN_DIR = Pathname(__FILE__).expand_path.dirname.parent + 'bin'
|
11
|
-
ENV['htmlunit_version'] ||= "2.9"
|
11
|
+
ENV['htmlunit_version'] ||= "2.9"
|
12
12
|
end
|
13
13
|
|
14
|
+
require 'akephalos/htmlunit_downloader'
|
14
15
|
require 'akephalos/client'
|
15
16
|
require 'capybara'
|
16
17
|
require 'akephalos/capybara'
|
@@ -1,5 +1,6 @@
|
|
1
1
|
module HtmlUnit
|
2
2
|
def self.download_htmlunit(version)
|
3
|
+
version ||= "2.9"
|
3
4
|
if not version_exist?(version)
|
4
5
|
puts "Installing HTMLUnit #{version} at .akephalos/#{version}/"
|
5
6
|
Dir.mkdir(".akephalos") unless File.exists?(".akephalos")
|
@@ -17,9 +18,7 @@ module HtmlUnit
|
|
17
18
|
end
|
18
19
|
|
19
20
|
def self.unzip(version)
|
20
|
-
`unzip htmlunit-#{version}.zip`
|
21
|
-
`mv -f htmlunit-2.10-SNAPSHOT htmlunit-2.10 > /dev/null 2>&1`
|
22
|
-
`cp -r htmlunit-#{version}/lib/ .akephalos/#{version}/`
|
21
|
+
`unzip -o -j -d .akephalos/#{version} htmlunit-#{version}.zip`
|
23
22
|
end
|
24
23
|
|
25
24
|
def self.download(version)
|
@@ -14,13 +14,13 @@ module Akephalos
|
|
14
14
|
# client = Akephalos::RemoteClient.new
|
15
15
|
# client.visit "http://www.oinopa.com"
|
16
16
|
# client.page.source # => "<!DOCTYPE html PUBLIC..."
|
17
|
-
class RemoteClient
|
18
|
-
|
17
|
+
class RemoteClient
|
18
|
+
|
19
19
|
# @return [DRbObject] a new instance of Akephalos::Client from the DRb
|
20
20
|
# server
|
21
21
|
def self.new(options = {})
|
22
|
-
manager.new_client(options)
|
23
|
-
end
|
22
|
+
manager.new_client(options)
|
23
|
+
end
|
24
24
|
|
25
25
|
# Starts a remove JRuby DRb server unless already running and returns an
|
26
26
|
# instance of Akephalos::ClientManager.
|
@@ -41,12 +41,12 @@ module Akephalos
|
|
41
41
|
manager.configuration = Akephalos.configuration.extend(DRbUndumped)
|
42
42
|
|
43
43
|
@manager = manager
|
44
|
-
end
|
44
|
+
end
|
45
45
|
|
46
46
|
# Start a remote server process and return when it is available for use.
|
47
47
|
def self.start!
|
48
|
-
port = find_available_port
|
49
|
-
|
48
|
+
port = find_available_port
|
49
|
+
|
50
50
|
remote_client = IO.popen("ruby #{Akephalos::BIN_DIR + 'akephalos'} #{port}")
|
51
51
|
|
52
52
|
# Set up a monitor thread to detect if the forked server exits
|
@@ -62,7 +62,13 @@ module Akephalos
|
|
62
62
|
|
63
63
|
# Ensure that the remote server shuts down gracefully when we are
|
64
64
|
# finished.
|
65
|
-
at_exit {
|
65
|
+
at_exit {
|
66
|
+
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
|
67
|
+
system("taskkill /PID #{remote_client.pid} /F /T")
|
68
|
+
else
|
69
|
+
Process.kill(:INT, remote_client.pid)
|
70
|
+
end
|
71
|
+
}
|
66
72
|
|
67
73
|
port
|
68
74
|
end
|
data/lib/akephalos/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: akephalos2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2011-12-
|
13
|
+
date: 2011-12-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: capybara
|
17
|
-
requirement: &
|
17
|
+
requirement: &70282950353040 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70282950353040
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rake
|
28
|
-
requirement: &
|
28
|
+
requirement: &70282950368980 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70282950368980
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: jruby-jars
|
39
|
-
requirement: &
|
39
|
+
requirement: &70282950368360 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70282950368360
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: sinatra
|
50
|
-
requirement: &
|
50
|
+
requirement: &70282950367560 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70282950367560
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: rspec
|
61
|
-
requirement: &
|
61
|
+
requirement: &70282950367120 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70282950367120
|
70
70
|
description: Headless Browser for Integration Testing with Capybara
|
71
71
|
email:
|
72
72
|
- bj.schaefer@gmail.com
|