statt 0.0.3 → 0.0.4

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.
@@ -1,17 +1,25 @@
1
1
  = statt
2
+
2
3
  Statt is Selenium Testing All The Time. It's being built as a replacement for Webrat using Selenium servers organized in a grid, to speed up testing with multiple servers.
3
4
 
4
5
  == Progress
5
6
 
6
- So far, as of version 0.0.3:
7
+ As of version 0.0.4:
7
8
  - You can spawn a Hub, which stands in for the Remote Control server in a grid setup. This can only be started locally to minimize network latency contributing to slowing down the tests.
8
9
  - You can spawn one to as many RC servers you need to do the job. In the future, you'll be able to specify the location of servers that are non-local, though you'll have to start them up yourself.
10
+ - You can start a client, spawn a browser session, and start sending commands to the hub.
9
11
 
10
12
  == TODO
11
13
 
14
+ <del>- set up the client to talk to the hub.</del>
12
15
  - setting up the api for the selenium client, with the goal of replacing Webrat steps.
16
+ - methods to locate links, buttons, etc. by their text.
17
+ - construct statt_steps.rb for inclusion in cucumber steps dir.
18
+ - remove webrat steps and place statt steps in features/steps dir using an executable.
19
+ - undo parameter for executable to restore webrat steps.
13
20
  - algorithm for dealing with features that modify the database to ensure a clean state for tests that need it.
14
21
  - cucumber integration (setup, teardown, tagging, database concurrency)
22
+ - set up hub to communicate with multiple non-local RC servers.
15
23
  - minimize gem size (~7.8MB)
16
24
  - wiki on how to set things up (Cucumber, DatabaseCleaner, Machinist).
17
25
  - optimizations for speed.
@@ -1,7 +1,7 @@
1
1
  hub:
2
2
  port: 4444
3
3
  remoteControlPollingIntervalInSeconds: 180
4
- sessionMaxIdleTimeInSeconds: 0
4
+ sessionMaxIdleTimeInSeconds: 360
5
5
  environments:
6
6
  - name: "Firefox on Windows"
7
7
  browser: "*firefox"
@@ -1,10 +1,7 @@
1
1
  #!/usr/local/bin/ruby -w
2
2
 
3
3
  module Statt
4
- # require "selenium"
5
- # require "selenium/server_manager"
6
- # require "selenium/selenium_server"
7
-
4
+
8
5
  require "net/http"
9
6
  require "yaml"
10
7
  require 'rake'
@@ -1,35 +1,44 @@
1
1
  #!/usr/local/bin/ruby -w
2
2
 
3
- # require "selenium"
4
- # require "test/unit"
5
- # require "selenium/server_manager"
6
- # require "selenium/selenium_server"
7
- # require "selenium/client/driver"
8
-
9
3
  module Statt
10
- class Client
11
- attr_accessor :selenium, :host, :port, :timeout, :browser, :url
4
+ class Client < Selenium::Client::Driver
12
5
  def initialize(options = {})
13
6
  options = { :host => "localhost",
14
7
  :port => 4444,
15
- :timeout => 10,
8
+ :timeout => 300,
16
9
  :browser => "*firefox",
17
10
  :url => "http://localhost:3000"}.merge(options)
18
- @host = options[:host]
19
- @port = options[:port]
20
- @timeout = options[:timeout]
21
- @browser = options[:browser]
22
- @url = options[:url]
23
-
24
- @selenium = Selenium::Client::Driver.new(options)
11
+ super(options)
12
+ end
13
+
14
+ def start
15
+ start_new_browser_session
16
+ end
17
+
18
+ def stop
19
+ close_current_browser_session
20
+ end
21
+
22
+ def click_button_by_text(value)
23
+ click "xpath=//input[@value='#{value}']"
24
+ end
25
+
26
+ def click_link_by_text(value)
27
+ begin
28
+ click "xpath=//a[text()='#{value}']"
29
+ rescue Exception => msg
30
+ begin
31
+ click "xpath=//a/*[text()='#{value}']"
32
+ rescue Exception => msg
33
+ puts "Couldn\'t locate '#{value}' #{msg}"
34
+ end
35
+ end
25
36
  end
26
37
 
27
- def test
28
- @selenium.start_new_browser_session
29
- @selenium.open "/"
30
- @selenium.type "q", "Selenium seleniumhq"
31
- @selenium.click "btnG", :wait_for => :page_to_load
32
- @selenium.close_current_browser_session
38
+ def source
39
+
33
40
  end
34
41
  end
42
+
43
+
35
44
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - davidtrogers
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-24 00:00:00 -04:00
12
+ date: 2009-10-27 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency