thewoolleyman-selenium-rails 0.0.1

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/Manifest ADDED
@@ -0,0 +1,9 @@
1
+ lib/selenium_rails/selenium_driver_manager.rb
2
+ lib/selenium_rails/selenium_helper.rb
3
+ lib/selenium_rails/selenium_test_case.rb
4
+ lib/selenium_rails/servers_runner.rb
5
+ lib/selenium_rails.rb
6
+ lib/selenium-rails.rb
7
+ lib/tasks/selenium_tasks.rake
8
+ Manifest
9
+ README.txt
data/README.txt ADDED
@@ -0,0 +1,18 @@
1
+ = Selenium Rails
2
+
3
+ Copyright:: (c) 2008 Chad Woolley and others
4
+ License:: MIT License
5
+
6
+ Selenium Rails supports the use of Selenium RC with Ruby on Rails projects.
7
+
8
+ = Instructions
9
+
10
+ * gem install selenium-rake
11
+ * Copy the file /lib/tasks/selenium_tasks.rake into your app's lib/tasks directory
12
+ * Write some selenium tests under test/selenium. For an example app, see http://github.com/pivotal/minimalenium
13
+ * 'rake test:selenium' to run all selenium tests
14
+ * 'rake test:selenium TEST=test/selenium/my_test.rb' to run a single test file
15
+
16
+ For documentation on the Selenium Ruby gem, see http://selenium.rubyforge.org/
17
+
18
+ For documentation on the Selenium project and Selenium RC, see the Selenium homepage: http://www.openqa.org/selenium
@@ -0,0 +1,2 @@
1
+ # Allow people to require with a dash as well as an underscore
2
+ require 'selenium_rails'
@@ -0,0 +1,22 @@
1
+ module Selenium
2
+ class SeleniumDriverManager
3
+ @@selenium_driver = nil
4
+
5
+ def self.driver(driver_options = {})
6
+ unless @@selenium_driver
7
+ browser_start_command = ENV['BROWSER_START_COMMAND'] ? ENV['BROWSER_START_COMMAND'] : '*firefox'
8
+ opts = {:server_host => 'localhost', :server_port => '4444', :browser_start_command => browser_start_command,
9
+ :browser_url => 'http://localhost:3001', :timeout => 10000}.merge(driver_options)
10
+ @@selenium_driver = Selenium::SeleniumDriver.new(opts[:server_host], opts[:server_port], opts[:browser_start_command],
11
+ opts[:browser_url], opts[:timeout])
12
+ @@selenium_driver.start
13
+ end
14
+ @@selenium_driver
15
+ end
16
+
17
+ def self.stop_driver
18
+ @@selenium_driver.stop if @@selenium_driver
19
+ @@selenium_driver = nil
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,7 @@
1
+ module Selenium
2
+ module SeleniumHelper
3
+ def browser
4
+ SeleniumDriverManager.driver
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ module Selenium
2
+ class TestCase < Test::Unit::TestCase
3
+ include Selenium::SeleniumHelper
4
+
5
+ def default_test
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,28 @@
1
+ require 'selenium'
2
+ require File.dirname(__FILE__) + '/selenium_driver_manager'
3
+
4
+ module SeleniumRails
5
+ class ServersRunner
6
+ def self.run_with_servers(&block)
7
+ begin
8
+ rails_server_process = IO.popen("ruby #{RAILS_ROOT}/script/server --port=3001 --environment=test")
9
+ selenium_server = Selenium::SeleniumServer.new
10
+ unless selenium_server.running?
11
+ IO.popen("selenium")
12
+ end
13
+
14
+ yield
15
+
16
+ Selenium::SeleniumDriverManager.stop_driver
17
+ rescue Exception => e
18
+ puts e
19
+ raise e
20
+ ensure
21
+ puts "Killing rails server process at pid #{rails_server_process.pid}"
22
+ Process.kill(9,rails_server_process.pid)
23
+ puts "Killing selenium server"
24
+ selenium_server.stop
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,7 @@
1
+ require 'rubygems'
2
+ require 'selenium'
3
+ require 'test/unit'
4
+ require 'selenium_rails/selenium_driver_manager'
5
+ require 'selenium_rails/selenium_helper'
6
+ require 'selenium_rails/selenium_test_case'
7
+ require 'selenium_rails/servers_runner'
@@ -0,0 +1,20 @@
1
+ # TODO: figure out how to load this from the gem. See http://rails.lighthouseapp.com/projects/8994/tickets/59
2
+ require 'test/unit'
3
+
4
+ namespace :test do
5
+ desc "Run tests for Selenium (automatically starts rails and selenium RC servers)"
6
+ task :selenium do
7
+ require 'rubygems'
8
+ require 'selenium-rails'
9
+
10
+ SeleniumRails::ServersRunner.run_with_servers do
11
+ Rake::Task["test:selenium_with_servers_started"].invoke
12
+ end
13
+ end
14
+
15
+ Rake::TestTask.new(:selenium_with_servers_started) do |t|
16
+ t.pattern = 'test/selenium/**/*_test.rb'
17
+ t.verbose = true
18
+ end
19
+ end
20
+
@@ -0,0 +1,23 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = %q{selenium-rails}
3
+ s.version = "0.0.1"
4
+
5
+ s.specification_version = 2 if s.respond_to? :specification_version=
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Chad Woolley, Others"]
9
+ s.date = %q{2008-08-20}
10
+ s.description = %q{Support for using Selenium RC with Rails}
11
+ s.email = %q{thewoolleyman@gmail.com}
12
+ s.extra_rdoc_files = ["lib/selenium_rails/selenium_driver_manager.rb", "lib/selenium_rails/selenium_helper.rb", "lib/selenium_rails/selenium_test_case.rb", "lib/selenium_rails/servers_runner.rb", "lib/selenium_rails.rb", "lib/selenium-rails.rb", "README.txt"]
13
+ s.files = ["lib/selenium_rails/selenium_driver_manager.rb", "lib/selenium_rails/selenium_helper.rb", "lib/selenium_rails/selenium_test_case.rb", "lib/selenium_rails/servers_runner.rb", "lib/selenium_rails.rb", "lib/selenium-rails.rb", "lib/tasks/selenium_tasks.rake", "Manifest", "README.txt", "selenium-rails.gemspec"]
14
+ s.has_rdoc = true
15
+ s.homepage = %q{http://selenium-rails.rubyforge.org}
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Selenium Rails", "--main", "README.txt"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = %q{selenium-rails}
19
+ s.rubygems_version = %q{1.2.0}
20
+ s.summary = %q{Support for using Selenium RC with Rails.}
21
+
22
+ s.add_dependency(%q<Selenium>, [">= 1.1.14"])
23
+ end
metadata ADDED
@@ -0,0 +1,81 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: thewoolleyman-selenium-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Chad Woolley, Others
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-08-20 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: Selenium
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.1.14
23
+ version:
24
+ description: Support for using Selenium RC with Rails
25
+ email: thewoolleyman@gmail.com
26
+ executables: []
27
+
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - lib/selenium_rails/selenium_driver_manager.rb
32
+ - lib/selenium_rails/selenium_helper.rb
33
+ - lib/selenium_rails/selenium_test_case.rb
34
+ - lib/selenium_rails/servers_runner.rb
35
+ - lib/selenium_rails.rb
36
+ - lib/selenium-rails.rb
37
+ - README.txt
38
+ files:
39
+ - lib/selenium_rails/selenium_driver_manager.rb
40
+ - lib/selenium_rails/selenium_helper.rb
41
+ - lib/selenium_rails/selenium_test_case.rb
42
+ - lib/selenium_rails/servers_runner.rb
43
+ - lib/selenium_rails.rb
44
+ - lib/selenium-rails.rb
45
+ - lib/tasks/selenium_tasks.rake
46
+ - Manifest
47
+ - README.txt
48
+ - selenium-rails.gemspec
49
+ has_rdoc: true
50
+ homepage: http://selenium-rails.rubyforge.org
51
+ post_install_message:
52
+ rdoc_options:
53
+ - --line-numbers
54
+ - --inline-source
55
+ - --title
56
+ - Selenium Rails
57
+ - --main
58
+ - README.txt
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: "0"
66
+ version:
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: "0"
72
+ version:
73
+ requirements: []
74
+
75
+ rubyforge_project: selenium-rails
76
+ rubygems_version: 1.2.0
77
+ signing_key:
78
+ specification_version: 2
79
+ summary: Support for using Selenium RC with Rails.
80
+ test_files: []
81
+