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.
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
+