seleniumrc 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. data/CHANGES +2 -0
  2. data/README +0 -0
  3. data/Rakefile +68 -0
  4. data/lib/seleniumrc/app_server_checker.rb +43 -0
  5. data/lib/seleniumrc/dsl/selenium_dsl.rb +186 -0
  6. data/lib/seleniumrc/dsl/test_unit_dsl.rb +95 -0
  7. data/lib/seleniumrc/extensions/selenium_driver.rb +33 -0
  8. data/lib/seleniumrc/extensions/testrunnermediator.rb +19 -0
  9. data/lib/seleniumrc/mongrel_selenium_server_runner.rb +35 -0
  10. data/lib/seleniumrc/selenium_configuration.rb +78 -0
  11. data/lib/seleniumrc/selenium_context.rb +226 -0
  12. data/lib/seleniumrc/selenium_element.rb +195 -0
  13. data/lib/seleniumrc/selenium_helper.rb +5 -0
  14. data/lib/seleniumrc/selenium_page.rb +76 -0
  15. data/lib/seleniumrc/selenium_server_runner.rb +33 -0
  16. data/lib/seleniumrc/selenium_test_case.rb +95 -0
  17. data/lib/seleniumrc/tasks/selenium_test_task.rb +21 -0
  18. data/lib/seleniumrc/wait_for.rb +47 -0
  19. data/lib/seleniumrc/webrick_selenium_server_runner.rb +33 -0
  20. data/lib/seleniumrc.rb +28 -0
  21. data/spec/seleniumrc/app_server_checker_spec.rb +56 -0
  22. data/spec/seleniumrc/mongrel_selenium_server_runner_spec.rb +42 -0
  23. data/spec/seleniumrc/selenese_interpreter_spec.rb +25 -0
  24. data/spec/seleniumrc/selenium_configuration_spec.rb +21 -0
  25. data/spec/seleniumrc/selenium_context_spec.rb +362 -0
  26. data/spec/seleniumrc/selenium_element_spec.rb +530 -0
  27. data/spec/seleniumrc/selenium_page_spec.rb +226 -0
  28. data/spec/seleniumrc/selenium_server_runner_spec.rb +42 -0
  29. data/spec/seleniumrc/selenium_test_case_class_method_spec.rb +41 -0
  30. data/spec/seleniumrc/selenium_test_case_spec.rb +908 -0
  31. data/spec/seleniumrc/selenium_test_case_spec_helper.rb +23 -0
  32. data/spec/seleniumrc/webrick_selenium_server_runner_spec.rb +116 -0
  33. data/spec/spec_helper.rb +57 -0
  34. data/spec/spec_suite.rb +4 -0
  35. 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
@@ -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
@@ -0,0 +1,4 @@
1
+ dir = File.dirname(__FILE__)
2
+ Dir["#{dir}/**/*_spec.rb"].each do |file|
3
+ require file
4
+ end
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
+