seleniumrc 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/CHANGES +2 -0
- data/README +0 -0
- data/Rakefile +68 -0
- data/lib/seleniumrc/app_server_checker.rb +43 -0
- data/lib/seleniumrc/dsl/selenium_dsl.rb +186 -0
- data/lib/seleniumrc/dsl/test_unit_dsl.rb +95 -0
- data/lib/seleniumrc/extensions/selenium_driver.rb +33 -0
- data/lib/seleniumrc/extensions/testrunnermediator.rb +19 -0
- data/lib/seleniumrc/mongrel_selenium_server_runner.rb +35 -0
- data/lib/seleniumrc/selenium_configuration.rb +78 -0
- data/lib/seleniumrc/selenium_context.rb +226 -0
- data/lib/seleniumrc/selenium_element.rb +195 -0
- data/lib/seleniumrc/selenium_helper.rb +5 -0
- data/lib/seleniumrc/selenium_page.rb +76 -0
- data/lib/seleniumrc/selenium_server_runner.rb +33 -0
- data/lib/seleniumrc/selenium_test_case.rb +95 -0
- data/lib/seleniumrc/tasks/selenium_test_task.rb +21 -0
- data/lib/seleniumrc/wait_for.rb +47 -0
- data/lib/seleniumrc/webrick_selenium_server_runner.rb +33 -0
- data/lib/seleniumrc.rb +28 -0
- data/spec/seleniumrc/app_server_checker_spec.rb +56 -0
- data/spec/seleniumrc/mongrel_selenium_server_runner_spec.rb +42 -0
- data/spec/seleniumrc/selenese_interpreter_spec.rb +25 -0
- data/spec/seleniumrc/selenium_configuration_spec.rb +21 -0
- data/spec/seleniumrc/selenium_context_spec.rb +362 -0
- data/spec/seleniumrc/selenium_element_spec.rb +530 -0
- data/spec/seleniumrc/selenium_page_spec.rb +226 -0
- data/spec/seleniumrc/selenium_server_runner_spec.rb +42 -0
- data/spec/seleniumrc/selenium_test_case_class_method_spec.rb +41 -0
- data/spec/seleniumrc/selenium_test_case_spec.rb +908 -0
- data/spec/seleniumrc/selenium_test_case_spec_helper.rb +23 -0
- data/spec/seleniumrc/webrick_selenium_server_runner_spec.rb +116 -0
- data/spec/spec_helper.rb +57 -0
- data/spec/spec_suite.rb +4 -0
- metadata +83 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
module SeleniumTestCaseSpec
|
2
|
+
attr_reader :base_selenium
|
3
|
+
|
4
|
+
class MySeleniumTestCase < Seleniumrc::SeleniumTestCase
|
5
|
+
def initialize(*args)
|
6
|
+
@_result = Test::Unit::TestResult.new
|
7
|
+
super('test_nothing')
|
8
|
+
end
|
9
|
+
|
10
|
+
def run(result)
|
11
|
+
# do nothing
|
12
|
+
end
|
13
|
+
def test_nothing
|
14
|
+
end
|
15
|
+
|
16
|
+
def base_selenium
|
17
|
+
@selenium
|
18
|
+
end
|
19
|
+
def base_selenium=(value)
|
20
|
+
@selenium = value
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
module Seleniumrc
|
4
|
+
describe WebrickSeleniumServerRunner do
|
5
|
+
before(:each) do
|
6
|
+
Object.const_set(:RAILS_ROOT, "foobar")
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:each) do
|
10
|
+
Object.instance_eval {remove_const :RAILS_ROOT}
|
11
|
+
end
|
12
|
+
|
13
|
+
it "start method should set socket.do_not_reverse_lookup to true and" do
|
14
|
+
runner = create_runner_that_is_stubbed_so_start_method_works
|
15
|
+
runner.start
|
16
|
+
end
|
17
|
+
|
18
|
+
it "start method should initialize the HttpServer with parameters" do
|
19
|
+
runner = create_runner_that_is_stubbed_so_start_method_works
|
20
|
+
runner.start
|
21
|
+
end
|
22
|
+
|
23
|
+
it "start method should mount and start the server" do
|
24
|
+
runner = create_runner_that_is_stubbed_so_start_method_works
|
25
|
+
runner.start
|
26
|
+
end
|
27
|
+
|
28
|
+
it "start method should require the environment and dispatcher" do
|
29
|
+
runner = create_runner_that_is_stubbed_so_start_method_works
|
30
|
+
|
31
|
+
mock(runner).require.with("foobar")
|
32
|
+
mock(runner).require.with("dispatcher")
|
33
|
+
|
34
|
+
runner.environment_path = "foobar"
|
35
|
+
runner.start
|
36
|
+
end
|
37
|
+
|
38
|
+
it "start method should require environment when rails_root is not set" do
|
39
|
+
runner = create_runner_that_is_stubbed_so_start_method_works
|
40
|
+
requires = []
|
41
|
+
stub(runner).require {|val| requires << val}
|
42
|
+
|
43
|
+
runner.start
|
44
|
+
requires.any? {|r| r =~ /\/config\/environment/}.should == true
|
45
|
+
end
|
46
|
+
|
47
|
+
it "start method should trap server.shutdown" do
|
48
|
+
runner = create_runner_that_is_stubbed_so_start_method_works
|
49
|
+
|
50
|
+
(class << runner; self; end).class_eval {attr_reader :trap_signal_name}
|
51
|
+
def runner.trap(signal_name, &block)
|
52
|
+
@trap_signal_name = signal_name
|
53
|
+
block.call
|
54
|
+
end
|
55
|
+
mock(@mock_server).shutdown.once
|
56
|
+
|
57
|
+
runner.start
|
58
|
+
runner.trap_signal_name.should == "INT"
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should shutdown webrick server" do
|
62
|
+
runner = create_runner_that_is_stubbed_so_start_method_works
|
63
|
+
runner.start
|
64
|
+
mock(@mock_server).shutdown.once
|
65
|
+
runner.stop
|
66
|
+
end
|
67
|
+
|
68
|
+
def create_runner_that_is_stubbed_so_start_method_works()
|
69
|
+
@context = Seleniumrc::SeleniumContext.new
|
70
|
+
runner = @context.create_webrick_runner
|
71
|
+
class << runner; public :start_server; end
|
72
|
+
|
73
|
+
def runner.require(*args)
|
74
|
+
end
|
75
|
+
|
76
|
+
mock_socket = "mock_socket"
|
77
|
+
runner.socket = mock_socket
|
78
|
+
stub(mock_socket).do_not_reverse_lookup=(true)
|
79
|
+
|
80
|
+
@mock_server = mock_server = "mock_server"
|
81
|
+
(class << @context; self; end).class_eval do
|
82
|
+
define_method :create_webrick_server do
|
83
|
+
mock_server
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
@context.internal_app_server_port = 4000
|
88
|
+
@context.internal_app_server_host = "localhost"
|
89
|
+
@context.rails_env = "test"
|
90
|
+
stub(@mock_server).mount('/')
|
91
|
+
mock(@mock_server).mount(
|
92
|
+
'/',
|
93
|
+
DispatchServlet,
|
94
|
+
{
|
95
|
+
:port => @context.internal_app_server_port,
|
96
|
+
:ip => @context.internal_app_server_host,
|
97
|
+
:environment => @context.rails_env,
|
98
|
+
:server_root => File.expand_path("#{@context.rails_root}/public/"),
|
99
|
+
:server_type => WEBrick::SimpleServer,
|
100
|
+
:charset => "UTF-8",
|
101
|
+
:mime_types => WEBrick::HTTPUtils::DefaultMimeTypes,
|
102
|
+
:working_directory => File.expand_path(@context.rails_root.to_s)
|
103
|
+
}
|
104
|
+
)
|
105
|
+
|
106
|
+
mock(@mock_server).start.once
|
107
|
+
|
108
|
+
mock_thread_class = "mock_thread_class"
|
109
|
+
runner.thread_class = mock_thread_class
|
110
|
+
mock(mock_thread_class).start {|block| block.call}
|
111
|
+
|
112
|
+
return runner
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
gem 'rspec', ">=0.7.5"
|
3
|
+
require 'spec'
|
4
|
+
require 'rr'
|
5
|
+
|
6
|
+
dir = File.dirname(__FILE__)
|
7
|
+
$LOAD_PATH << File.expand_path("#{dir}/../lib")
|
8
|
+
|
9
|
+
require "tmpdir"
|
10
|
+
require "hpricot"
|
11
|
+
require 'tempfile'
|
12
|
+
|
13
|
+
require "seleniumrc"
|
14
|
+
require File.dirname(__FILE__) + "/seleniumrc/selenium_test_case_spec_helper"
|
15
|
+
|
16
|
+
Test::Unit.run = true
|
17
|
+
|
18
|
+
ProcessStub = Struct.new :host, :port, :name, :cmd, :logdir, :is_running unless Object.const_defined?(:ProcessStub)
|
19
|
+
ProcessStub.class_eval do
|
20
|
+
def is_running?
|
21
|
+
self.is_running
|
22
|
+
end
|
23
|
+
def say(msg, options = {})
|
24
|
+
end
|
25
|
+
def run
|
26
|
+
false
|
27
|
+
end
|
28
|
+
def start
|
29
|
+
self.is_running = true
|
30
|
+
end
|
31
|
+
def stop
|
32
|
+
self.is_running = false
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
Spec::Runner.configure do |config|
|
37
|
+
config.mock_with :rr
|
38
|
+
end
|
39
|
+
|
40
|
+
module Seleniumrc::WaitFor
|
41
|
+
def time_class
|
42
|
+
@time_class ||= FakeTimeClass.new
|
43
|
+
end
|
44
|
+
|
45
|
+
def sleep(time)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
class FakeTimeClass
|
50
|
+
def initialize
|
51
|
+
@now = Time.now
|
52
|
+
end
|
53
|
+
|
54
|
+
def now
|
55
|
+
@now += 1
|
56
|
+
end
|
57
|
+
end
|
data/spec/spec_suite.rb
ADDED
metadata
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.9.3
|
3
|
+
specification_version: 1
|
4
|
+
name: seleniumrc
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.0.1
|
7
|
+
date: 2007-10-26 00:00:00 -07:00
|
8
|
+
summary: Selenium RC with enhanced assertions that also runs your rails app.
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: opensource@pivotallabs.com
|
12
|
+
homepage: http://pivotallabs.com
|
13
|
+
rubyforge_project: pivotalrb
|
14
|
+
description: Selenium RC with enhanced assertions that also runs your rails app.
|
15
|
+
autorequire: rr
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
post_install_message:
|
29
|
+
authors:
|
30
|
+
- Pivotal Labs
|
31
|
+
files:
|
32
|
+
- Rakefile
|
33
|
+
- CHANGES
|
34
|
+
- README
|
35
|
+
- lib/seleniumrc/app_server_checker.rb
|
36
|
+
- lib/seleniumrc/mongrel_selenium_server_runner.rb
|
37
|
+
- lib/seleniumrc/selenium_helper.rb
|
38
|
+
- lib/seleniumrc/wait_for.rb
|
39
|
+
- lib/seleniumrc/selenium_test_case.rb
|
40
|
+
- lib/seleniumrc/selenium_server_runner.rb
|
41
|
+
- lib/seleniumrc/dsl/selenium_dsl.rb
|
42
|
+
- lib/seleniumrc/dsl/test_unit_dsl.rb
|
43
|
+
- lib/seleniumrc/selenium_element.rb
|
44
|
+
- lib/seleniumrc/webrick_selenium_server_runner.rb
|
45
|
+
- lib/seleniumrc/selenium_context.rb
|
46
|
+
- lib/seleniumrc/tasks/selenium_test_task.rb
|
47
|
+
- lib/seleniumrc/extensions/selenium_driver.rb
|
48
|
+
- lib/seleniumrc/extensions/testrunnermediator.rb
|
49
|
+
- lib/seleniumrc/selenium_configuration.rb
|
50
|
+
- lib/seleniumrc/selenium_page.rb
|
51
|
+
- lib/seleniumrc.rb
|
52
|
+
- spec/spec_suite.rb
|
53
|
+
- spec/spec_helper.rb
|
54
|
+
- spec/seleniumrc/selenium_page_spec.rb
|
55
|
+
- spec/seleniumrc/selenium_server_runner_spec.rb
|
56
|
+
- spec/seleniumrc/selenium_element_spec.rb
|
57
|
+
- spec/seleniumrc/selenium_test_case_spec.rb
|
58
|
+
- spec/seleniumrc/selenium_context_spec.rb
|
59
|
+
- spec/seleniumrc/app_server_checker_spec.rb
|
60
|
+
- spec/seleniumrc/selenium_test_case_spec_helper.rb
|
61
|
+
- spec/seleniumrc/webrick_selenium_server_runner_spec.rb
|
62
|
+
- spec/seleniumrc/mongrel_selenium_server_runner_spec.rb
|
63
|
+
- spec/seleniumrc/selenium_configuration_spec.rb
|
64
|
+
- spec/seleniumrc/selenium_test_case_class_method_spec.rb
|
65
|
+
- spec/seleniumrc/selenese_interpreter_spec.rb
|
66
|
+
test_files: []
|
67
|
+
|
68
|
+
rdoc_options:
|
69
|
+
- --main
|
70
|
+
- README
|
71
|
+
- --inline-source
|
72
|
+
- --line-numbers
|
73
|
+
extra_rdoc_files:
|
74
|
+
- README
|
75
|
+
- CHANGES
|
76
|
+
executables: []
|
77
|
+
|
78
|
+
extensions: []
|
79
|
+
|
80
|
+
requirements: []
|
81
|
+
|
82
|
+
dependencies: []
|
83
|
+
|