examples/cucumber/step_definitions/example_steps.rb in watirgrid-1.1.1 vs examples/cucumber/step_definitions/example_steps.rb in watirgrid-1.1.2
- old
+ new
@@ -1,39 +1,51 @@
$LOAD_PATH.unshift(File.dirname(__FILE__))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', '..', 'lib'))
require 'watirgrid'
-require 'rspec/expectations';
+require 'rspec/expectations';
+require 'watir-webdriver-performance'
-Given /^I have created and started a Controller$/ do
- controller = Controller.new(
- :loglevel => Logger::ERROR)
- controller.start
+controller = Controller.new(
+ :ring_server_port => 12357,
+ :loglevel => Logger::ERROR)
+controller.start
+
+provider = Provider.new(
+ :ring_server_port => 12357,
+ :loglevel => Logger::ERROR, :browser_type => 'webdriver')
+provider.start
+
+Given /^(\d+) users open "([^"]*)"$/ do |quantity, browser|
+ params={}
+ params[:ring_server_port] = 12357
+ # optionall connect via a controller_uri environment variable
+ # params[:controller_uri] = ENV["controller_uri"]
+ params[:browser] = browser # type of webdriver browser to spawn
+ params[:quantity] = quantity.to_i # max number of browsers to use
+ params[:rampup] = 10 # seconds
+ @grid = Watir::Grid.new(params)
+ @grid.start(:initiate => true)
end
-Then /^I should be able to create and start (\d+) "(.+?)" Providers$/ do |total, browser_type|
- 1.upto(total.to_i) do
- provider = Provider.new(
- :loglevel => Logger::ERROR, :browser_type => browser_type)
- provider.start
+Given /^navigate to the portal$/ do
+ @grid.iterate {|browser| browser.goto "http://gridinit.com/examples/logon.html" }
+end
+
+When /^they enter their credentials$/ do
+ @grid.iterate do |browser|
+ browser.text_field(:name => "email").set "tim@mahenterprize.com"
+ browser.text_field(:name => "password").set "mahsecretz"
+ browser.button(:type => "submit").click
end
end
-Given /^I have created and started a Grid with (\d+) Providers$/ do |total|
- @grid = Watir::Grid.new
- @grid.start(:take_all => true)
- @grid.browsers.size.should == total.to_i
+Then /^they should see their account settings$/ do
+ @grid.iterate do |browser|
+ browser.text.should =~ /Maybe I should get a real Gridinit account/
+ end
end
-Then /^I should be able to control the following browsers in parallel:$/ do |table|
- browsers = table.raw.collect {|e| e.to_s.downcase.to_sym}
- threads = []
- @grid.browsers.each_with_index do |browser, index|
- threads << Thread.new do
- b = browser[:object].new_browser(browsers[index])
- b.goto("http://www.google.com")
- b.text_field(:name, 'q').set("watirgrid")
- b.button(:name, "btnI").click
- b.close
- end
- end
- threads.each {|thread| thread.join}
+Then /^the response time should be less than (d+) seconds$/ do |response_time|
+ @grid.iterate do |browser|
+ browser.performance.summary[:response_time].should < response_time.to_i * 1000
+ end
end