selenium-server 0.2.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
+ *.swp
2
+ profiles/
1
3
  *.jar
2
4
  *.gem
3
5
  *.rbc
data/Gemfile.lock ADDED
@@ -0,0 +1,28 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ selenium-server (0.3.0)
5
+ rake
6
+ selenium-webdriver
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ childprocess (0.3.9)
12
+ ffi (~> 1.0, >= 1.0.11)
13
+ ffi (1.6.0)
14
+ multi_json (1.7.2)
15
+ rake (10.0.4)
16
+ rubyzip (0.9.9)
17
+ selenium-webdriver (2.31.0)
18
+ childprocess (>= 0.2.5)
19
+ multi_json (~> 1.0)
20
+ rubyzip
21
+ websocket (~> 1.0.4)
22
+ websocket (1.0.7)
23
+
24
+ PLATFORMS
25
+ ruby
26
+
27
+ DEPENDENCIES
28
+ selenium-server!
data/README.md CHANGED
@@ -1,15 +1,40 @@
1
1
  #selenium-server
2
2
  ===============
3
3
 
4
- A wrapper for the [Selenium Rake Server Task](http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/Rake/ServerTask.html) -- used to download, start, stop, and restart selenium-standalone-server.jar.
4
+ This library aims to make configuring and running your Selenium tests against a Selenium Server simple for both local and remote execution.
5
+
5
6
 
6
7
  ## Getting Started
7
8
  ```ruby
8
9
  require 'selenium-server'
9
- SeleniumServer.start
10
- SeleniumServer.restart
11
- SeleniumServer.stop
10
+
11
+ SeleniumServer.configure do |c|
12
+ c.host = "localhost"
13
+ c.port = "4444"
14
+ c.browser = "firefox"
15
+ c.profile_path = "#{Dir.pwd}/profiles/your_custom_firefox_profile"
16
+ end
17
+
18
+ @driver = SeleniumServer.start
19
+
20
+ @driver.get "http://www.google.com"
21
+
22
+ SeleniumServer.finish
12
23
  ```
13
24
 
14
25
  ## Helpful bits
15
- The start action will download the latest selenium-standalone-server.jar (unless it already has) and run it, backgrounded, with logging disabled.
26
+
27
+ ### Selenium Actions Reference
28
+ This library uses the Selenium WebDriver Remote Bridge actions. You can find them [here](http://www.ruby-doc.org/gems/docs/b/bbc-selenium-webdriver-1.17.0/Selenium/WebDriver/Remote/Bridge.html).
29
+
30
+ ### Start
31
+ If host is set to "localhost", it will download the latest selenium-standalone-server.jar (unless it already has) and run it. If no additional parameters are set, it will be exected in the background, with logging disabled. This functionality is driven using the [Selenium Rake Server Task](http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/Rake/ServerTask.html).
32
+
33
+ ### Finish
34
+ Issues a quit command to the driver (and stops the local server if your host is set to "localhost").
35
+
36
+ ### Support
37
+ Currently, Firefox is is all that is supported. More coming soon!
38
+
39
+ ### Versioning
40
+ This project loosely follows [Semantic Versioning](http://semver.org/).
data/example.rb ADDED
@@ -0,0 +1,13 @@
1
+ require 'selenium-server'
2
+
3
+ SeleniumServer.configure do |c|
4
+ c.host = "localhost"
5
+ c.port = "4444"
6
+ c.profile_path = "#{Dir.pwd}/profiles/alfresco"
7
+ end
8
+
9
+ @driver = SeleniumServer.start
10
+
11
+ @driver.get "http://www.google.com"
12
+
13
+ SeleniumServer.finish
@@ -1 +1,5 @@
1
- require 'selenium-server/wrapper'
1
+ require 'selenium-webdriver'
2
+ require 'selenium-server/selenium-server'
3
+ require 'selenium-server/configuration'
4
+ require 'selenium-server/runner'
5
+ require 'selenium-server/server'
@@ -0,0 +1,5 @@
1
+ module SeleniumServer
2
+ class Configuration
3
+ attr_accessor :host, :port, :browser, :profile_path, :version, :background, :log
4
+ end
5
+ end
@@ -0,0 +1,31 @@
1
+ #browser type determines server type
2
+ #browser type determines config params
3
+ #initializer *should* be the same
4
+
5
+ module SeleniumServer
6
+ class Runner
7
+ attr_reader :driver
8
+
9
+ def initialize(configuration)
10
+ @driver = initialize_server(configuration)
11
+ end
12
+
13
+ private
14
+
15
+ def set_profile(profile_path)
16
+ profile = Selenium::WebDriver::Firefox::Profile.new(profile_path)
17
+ profile.assume_untrusted_certificate_issuer = false
18
+ Selenium::WebDriver::Remote::Capabilities.firefox(:firefox_profile => profile)
19
+ end
20
+
21
+ def set_server_url(host, port)
22
+ "http://#{host}:#{port}/wd/hub"
23
+ end
24
+
25
+ def initialize_server(configuration)
26
+ Selenium::WebDriver::Remote::Bridge.new(
27
+ :url => set_server_url(configuration.host, configuration.port),
28
+ :desired_capabilities => set_profile(configuration.profile_path))
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,34 @@
1
+ module SeleniumServer
2
+ extend self
3
+
4
+ def configure
5
+ yield configuration
6
+ end
7
+
8
+ def configuration
9
+ @configuration = Configuration.new
10
+ end
11
+
12
+ attr_reader :driver
13
+
14
+ def localhost?
15
+ case @configuration.host
16
+ when "localhost" then true
17
+ else false
18
+ end
19
+ end
20
+
21
+ def run
22
+ if localhost? then Server.start end
23
+ @driver = Runner.new(@configuration).driver
24
+ return driver
25
+ end
26
+
27
+ def finish
28
+ driver.quit
29
+ if localhost? then Server.stop end
30
+ end
31
+
32
+ alias :start :run
33
+ alias :stop :finish
34
+ end
@@ -0,0 +1,27 @@
1
+ module SeleniumServer
2
+ module Server
3
+ extend self
4
+
5
+ def start
6
+ rake "start"
7
+ end
8
+
9
+ def stop
10
+ rake "stop"
11
+ end
12
+
13
+ def restart
14
+ rake "restart"
15
+ end
16
+
17
+ private
18
+
19
+ def rake_file
20
+ "#{File.join(File.dirname(File.expand_path(__FILE__)), 'rake.task')}"
21
+ end
22
+
23
+ def rake(task)
24
+ system "rake -f #{rake_file} server:#{task}"
25
+ end
26
+ end
27
+ end
@@ -1,11 +1,11 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'selenium-server'
3
- s.version = '0.2.1'
3
+ s.version = '1.0.0'
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.authors = ['Dave Haeffner']
6
6
  s.email = ['dave@arrgyle.com']
7
7
  s.homepage = 'https://github.com/arrgyle/selenium-server'
8
- s.summary = 'A wrapper and runner for the selenium-standalone-server jar file.'
8
+ s.summary = 'A configurator and runner for you Selenium tests against a Selenium Server.'
9
9
  s.license = 'MIT'
10
10
 
11
11
  s.files = `git ls-files`.split($/)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-16 00:00:00.000000000 Z
12
+ date: 2013-04-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: selenium-webdriver
@@ -53,10 +53,15 @@ files:
53
53
  - .gitignore
54
54
  - .rvmrc
55
55
  - Gemfile
56
+ - Gemfile.lock
56
57
  - README.md
58
+ - example.rb
57
59
  - lib/selenium-server.rb
60
+ - lib/selenium-server/configuration.rb
58
61
  - lib/selenium-server/rake.task
59
- - lib/selenium-server/wrapper.rb
62
+ - lib/selenium-server/runner.rb
63
+ - lib/selenium-server/selenium-server.rb
64
+ - lib/selenium-server/server.rb
60
65
  - selenium-server.gemspec
61
66
  homepage: https://github.com/arrgyle/selenium-server
62
67
  licenses:
@@ -82,5 +87,5 @@ rubyforge_project:
82
87
  rubygems_version: 1.8.24
83
88
  signing_key:
84
89
  specification_version: 3
85
- summary: A wrapper and runner for the selenium-standalone-server jar file.
90
+ summary: A configurator and runner for you Selenium tests against a Selenium Server.
86
91
  test_files: []
@@ -1,23 +0,0 @@
1
- module SeleniumServer
2
- def self.start
3
- rake "start"
4
- end
5
-
6
- def self.stop
7
- rake "stop"
8
- end
9
-
10
- def self.restart
11
- rake "restart"
12
- end
13
-
14
- private
15
-
16
- def self.rake_file
17
- "#{File.join(File.dirname(File.expand_path(__FILE__)), 'rake.task')}"
18
- end
19
-
20
- def self.rake(task)
21
- system "rake -f #{rake_file} server:#{task}"
22
- end
23
- end