Skip to content

Instantly share code, notes, and snippets.

@vglebov
Created August 4, 2011 14:32
Show Gist options
  • Select an option

  • Save vglebov/1125293 to your computer and use it in GitHub Desktop.

Select an option

Save vglebov/1125293 to your computer and use it in GitHub Desktop.
step definitions
require 'rubygems'
require 'watir'
def browser
@browser ||= Watir::Browser.new()
end
After do
browser.close
end
Given /^продукт установлен по адресу "([^"]*)"$/ do |base_url|
@base_url = base_url
end
When /^удаляю куки "([^"]*)" для сайта$/ do |cookie_id|
js_script = %{
var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfaces.nsICookieManager);
var enumerator = cookieManager.enumerator;
while (enumerator.hasMoreElements()) {
var nextCookie = enumerator.getNext();
var cookie = nextCookie.QueryInterface(Components.interfaces.nsICookie);
var url = 'http://' + cookie.host + cookie.path;
if(cookie.name == '#{cookie_id}' && url.indexOf('#{@base_url}') == 0) {
cookieManager.remove(cookie.host, cookie.name, cookie.path, false);
}
}
}
result = browser.execute_script js_script
puts result
end
When /^открыть админку$/ do
browser.goto(@base_url + 'admin/')
end
When /^открыть главную страницу$/ do
browser.goto(@base_url)
end
Then /^количество куки "([^"]*)" для сайта должно быть (\d+)$/ do |cookie_id, expected|
js_script = %{
var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfaces.nsICookieManager);
var enumerator = cookieManager.enumerator;
var count = 0;
while (enumerator.hasMoreElements()) {
var nextCookie = enumerator.getNext();
var cookie = nextCookie.QueryInterface(Components.interfaces.nsICookie);
var url = 'http://' + cookie.host + cookie.path;
if(cookie.name == '#{cookie_id}' && url.indexOf('#{@base_url}') == 0) {
count++;
}
}
count;
}
result = browser.execute_script js_script
result.should == expected
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment