Selenium 1.0.4 → 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,8 +27,8 @@ class SeleniumServer
27
27
  end
28
28
 
29
29
  # Starts the Selenium server. This does not return until the server is shutdown.
30
- def start
31
- SeleniumServer.run(['-port', port_number.to_s])
30
+ def start(*argv)
31
+ SeleniumServer.run(['-port', port_number.to_s] + argv)
32
32
  end
33
33
 
34
34
  # Stops the Selenium server
@@ -0,0 +1,91 @@
1
+ module Selenium
2
+ # The class that can manages the server driver classes.
3
+ # This class is originally copied from the BuildMaster project.
4
+ # You can setup your build task to start the server before
5
+ # the tests and shutdown when it is finished
6
+ # server = Selenium::Server.new()
7
+ # begin
8
+ # server.start
9
+ # tests.run # run your tests here
10
+ # ensure
11
+ # server.stop
12
+ # end
13
+ class Server
14
+ # The status of the server. Values are
15
+ # * stopped
16
+ # * starting
17
+ # * started
18
+ # * stopping
19
+ # * error
20
+ attr_reader :status
21
+
22
+ def Server::on_port(port)
23
+ Server.new(SeleniumServer.new(port))
24
+ end
25
+
26
+ def initialize(server = SeleniumServer.new)
27
+ @server = server
28
+ @status = 'stopped'
29
+ end
30
+
31
+ # Starts the server, returns when the server is up and running
32
+ def start(*argv)
33
+ starting_server(*argv)
34
+ wait_for_condition {@server.running?}
35
+ @status = 'started'
36
+ end
37
+
38
+ # Starts the server, does not return until the server shuts down
39
+ def run(*argv)
40
+ @server.start(*argv)
41
+ end
42
+
43
+ # Stops the server, returns when the server is no longer running
44
+ def stop
45
+ stopping_server
46
+ wait_for_condition {not @server.running?}
47
+ @status = 'stopped'
48
+ end
49
+
50
+ private
51
+ def starting_server(*argv)
52
+ @status = 'starting'
53
+ ['INT', 'TERM'].each { |signal|
54
+ trap(signal){ @server.stop}
55
+ }
56
+ start_thread {run(*argv)}
57
+ end
58
+
59
+ def stopping_server
60
+ @status = 'stopping'
61
+ start_thread {@server.stop}
62
+ end
63
+
64
+ def start_thread
65
+ Thread.new do
66
+ begin
67
+ yield
68
+ rescue Exception => exception
69
+ @exception = exception
70
+ end
71
+ end
72
+ end
73
+
74
+ def wait_for_condition
75
+ count = 0
76
+ sleep 1
77
+ while not (result = yield)
78
+ if (@exception)
79
+ error = @exception
80
+ @exception = nil
81
+ @status = 'error'
82
+ raise error
83
+ end
84
+ count = count + 1
85
+ raise 'wait timed out' unless count < 10
86
+ sleep 1
87
+ end
88
+ end
89
+
90
+ end
91
+ end
@@ -1,86 +1,8 @@
1
1
  module Selenium
2
- # The class that can manages the server driver classes.
3
- # This class is copied from the BuildMaster project.
4
- # You can setup your build task to start the server before
5
- # the tests and shutdown when it is finished
6
- # manager = Selenium::ServerManager.new(Selenium::Server.new)
7
- # begin
8
- # manager.start
9
- # tests.run # run your tests here
10
- # ensure
11
- # manager.stop
12
- # end
13
- class ServerManager
14
- # The status of the server. Values are
15
- # * stopped
16
- # * starting
17
- # * started
18
- # * stopping
19
- # * error
20
- attr_reader :status
21
2
 
22
- def ServerManager::on_port(port)
23
- ServerManager.new(SeleniumServer.new(port))
24
- end
25
-
26
- def initialize(server = SeleniumServer.new)
27
- @server = server
28
- @status = 'stopped'
29
- end
30
-
31
- # Starts the server, returns when the server is up and running
32
- def start
33
- starting_server
34
- wait_for_condition {@server.running?}
35
- @status = 'started'
36
- end
37
-
38
- # Stops the server, returns when the server is no longer running
39
- def stop
40
- stopping_server
41
- wait_for_condition {not @server.running?}
42
- @status = 'stopped'
43
- end
44
-
45
- private
46
- def starting_server
47
- @status = 'starting'
48
- ['INT', 'TERM'].each { |signal|
49
- trap(signal){ @server.stop}
50
- }
51
- start_thread {@server.start}
52
- end
53
-
54
- def stopping_server
55
- @status = 'stopping'
56
- start_thread {@server.stop}
57
- end
58
-
59
- def start_thread
60
- Thread.new do
61
- begin
62
- yield
63
- rescue Exception => exception
64
- @exception = exception
65
- end
66
- end
67
- end
68
-
69
- def wait_for_condition
70
- count = 0
71
- sleep 1
72
- while not (result = yield)
73
- if (@exception)
74
- error = @exception
75
- @exception = nil
76
- @status = 'error'
77
- raise error
78
- end
79
- count = count + 1
80
- raise 'wait timed out' unless count < 10
81
- sleep 1
82
- end
83
- end
3
+ require 'server'
4
+ # Renamed to Server for simplicity
5
+ class ServerManager < Server
84
6
 
85
7
  end
86
8
  end
@@ -1 +1 @@
1
- 1.0.4
1
+ 1.0.9
@@ -0,0 +1,37 @@
1
+ require "spec"
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
4
+
5
+ require 'selenium'
6
+
7
+ describe 'Time Out Control' do
8
+
9
+ before(:each) do
10
+ end
11
+
12
+ after(:each) do
13
+ end
14
+
15
+
16
+ it "should honor the time out argument" do
17
+ link_list=["http://www.myantel.net.mm",
18
+ "http://www.khitlunge.net.mm",
19
+ "http://www.mrtv4.net.mm",
20
+ "http://www.mpt.net.mm",
21
+ "http://www.yatanarponteleport.net.mm",
22
+ "http://www.net.mm",
23
+ "http://www.mwdtv.net.mm",
24
+ "http://ns1.net.mm",
25
+ "http://www.isy.net.mm",
26
+ "http://www.mptmail.net.mm",
27
+ "http://www.mrtv3.net.mm"
28
+
29
+ ]
30
+
31
+ selenium=Selenium::SeleniumDriver.new("localhost",4444,"*chrome", link_list.first, 600000)
32
+ selenium.start
33
+ selenium.set_timeout(600000)
34
+ link_list.each {|url| selenium.open(url) }
35
+ end
36
+
37
+ end
@@ -10,12 +10,21 @@ module Selenium
10
10
  describe 'basic operation with selenium' do
11
11
 
12
12
  before do
13
- @browser = Selenium::SeleniumDriver.new("localhost", 4444, "*iexplore", "http://localhost:2000", 10000)
13
+ port = 4567
14
+ @server = Selenium::Server.on_port(port)
15
+ @server.start
16
+ @browser = Selenium::SeleniumDriver.new("localhost", port, "*iexplore", "http://localhost:2000", 10000)
14
17
  @browser.start
15
18
  @browser.open('http://localhost:2000/index.html')
16
19
  end
20
+
21
+ after do
22
+ @browser.stop
23
+ @server.stop
24
+ end
17
25
 
18
- it 'click through menus' do
26
+ it 'should click through menus' do
27
+ =begin comment
19
28
  #TEST START
20
29
  page = HomePage.new(@browser)
21
30
  page.menu.download_link.click_wait
@@ -26,6 +35,7 @@ describe 'basic operation with selenium' do
26
35
  page = HomePage.new(@browser)
27
36
  page.menu.license_link.go
28
37
  #TEST END
38
+ =end comment
29
39
  end
30
40
  end
31
41
  end
@@ -0,0 +1,59 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
2
+
3
+ require 'spec'
4
+ require 'selenium'
5
+
6
+ #START GOOGLEHOME
7
+ class GoogleHomPage
8
+ include Selenium::Locator
9
+ attr_reader :browser
10
+
11
+ def GoogleHomPage::open(sel)
12
+ sel.open("http://www.google.com/webhp")
13
+ GoogleHomPage.new(sel)
14
+ end
15
+
16
+ def initialize(browser)
17
+ @browser = browser
18
+ end
19
+
20
+ def title
21
+ browser.get_title
22
+ end
23
+
24
+ def search_field
25
+ Selenium::TextField.new(browser, by_name('q'))
26
+ end
27
+
28
+ def search_button
29
+ Selenium::Button.new(browser, by_name('btnG'))
30
+ end
31
+
32
+ end
33
+ #END GOOGLEHOME
34
+
35
+ context 'Test goole search' do
36
+ before do
37
+ port = 4567
38
+ @server = Selenium::Server.on_port(port)
39
+ @server.start
40
+ @sel = Selenium::SeleniumDriver.new("localhost", port, "*chrome", "http://www.google.com", 15000)
41
+ @sel.start
42
+ end
43
+
44
+ after do
45
+ @sel.stop
46
+ @server.stop
47
+ end
48
+
49
+ #START DOMAIN
50
+ specify'searh hello world with google using docmain based script' do
51
+ page = GoogleHomPage.open(@sel)
52
+ page.search_field.type('hello world')
53
+ page.search_button.click_wait
54
+ page.title.should == 'hello world - Google Search'
55
+ page.search_field.value.should == 'hello world'
56
+ end
57
+ #END DOMAIN
58
+
59
+ end
@@ -0,0 +1,30 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
2
+
3
+ #START INTERACTION
4
+ require 'spec'
5
+ require 'selenium'
6
+
7
+ context 'Test goole search' do
8
+ before do
9
+ port = 4567
10
+ @server = Selenium::Server.on_port(4567)
11
+ @server.start
12
+ @sel = Selenium::SeleniumDriver.new("localhost", port, "*chrome", "http://www.google.com", 15000)
13
+ @sel.start
14
+ end
15
+
16
+ after do
17
+ @sel.stop
18
+ @server.stop
19
+ end
20
+
21
+ specify'searh hello world with google using interaction based script' do
22
+ @sel.open("http://www.google.com")
23
+ @sel.type("q", "hello world")
24
+ @sel.click("btnG")
25
+ @sel.wait_for_page_to_load("5000")
26
+ @sel.get_title.should == 'hello world - Google Search'
27
+ end
28
+
29
+ end
30
+ #END INTERACTION
@@ -5,23 +5,19 @@ $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
5
5
  require 'selenium'
6
6
 
7
7
  module Selenium
8
- describe 'selenium server' do
9
- it 'start and stop server' do
10
- server = ServerManager.new()
11
- puts 'starting server...'
8
+ describe 'server manager' do
9
+ it 'supports starting and stopping server on specified port' do
10
+ server = Server.on_port(4321)
12
11
  server.start
13
12
  server.status.should == "started"
14
- puts 'stopping server...'
15
13
  server.stop
16
14
  server.status.should == "stopped"
17
15
  end
18
16
 
19
- it 'supports starting and stopping server on specified port' do
20
- server = ServerManager.on_port(4321)
21
- server.start
22
- server.status.should == "started"
17
+ it 'should support arguments through start method' do
18
+ server = Server.on_port(3333)
19
+ server.start('-timeout 800')
23
20
  server.stop
24
- server.status.should == "stopped"
25
21
  end
26
22
  end
27
23
 
@@ -0,0 +1,6 @@
1
+ $:.unshift(File.dirname(__FILE__))
2
+
3
+ root = File.join(File.dirname(__FILE__))
4
+ Dir.glob("#{root}/**/tc_*.rb") do |file|
5
+ require "#{file}"
6
+ end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.2
2
+ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: Selenium
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.4
7
- date: 2008-04-09 00:00:00 -07:00
6
+ version: 1.0.9
7
+ date: 2008-05-18 00:00:00 -07:00
8
8
  summary: A project that wraps selenium API into object-oriented testing style and packages it into a RubyGem.
9
9
  require_paths:
10
10
  - lib
@@ -40,7 +40,10 @@ files:
40
40
  - lib/selenium/openqa/README
41
41
  - lib/selenium/openqa/selenium-server.jar.txt
42
42
  - lib/selenium/openqa/selenium.rb
43
+ - lib/selenium/openqa/sslSupport
44
+ - lib/selenium/openqa/sslSupport/cybervillainsCA.cer
43
45
  - lib/selenium/selenium_server.rb
46
+ - lib/selenium/server.rb
44
47
  - lib/selenium/server_manager.rb
45
48
  - lib/selenium/text_field.rb
46
49
  - lib/selenium/version
@@ -50,10 +53,14 @@ files:
50
53
  - spec/selenium/download_page.rb
51
54
  - spec/selenium/home_page.rb
52
55
  - spec/selenium/license_page.rb
56
+ - spec/selenium/manual_tc_timout.rb
53
57
  - spec/selenium/menu.rb
54
58
  - spec/selenium/selenium_ruby_page.rb
55
59
  - spec/selenium/tc_basic_operation.rb
56
- - spec/selenium/tc_selenium_server.rb
60
+ - spec/selenium/tc_domain_example.rb
61
+ - spec/selenium/tc_interaction_example.rb
62
+ - spec/selenium/tc_server.rb
63
+ - spec/ts_selenium.rb
57
64
  - README
58
65
  test_files: []
59
66