2008-06-18 10:13:56 +02:00
|
|
|
# Renders Selenium test templates in a fashion analogous to +rxml+ and
|
|
|
|
|
# +rjs+ templates.
|
|
|
|
|
#
|
|
|
|
|
# setup
|
|
|
|
|
# open :controller => 'customer', :action => 'list'
|
|
|
|
|
# assert_title 'Customers'
|
|
|
|
|
#
|
|
|
|
|
# See SeleniumOnRails::TestBuilder for a list of available commands.
|
|
|
|
|
class SeleniumOnRails::RSelenese < SeleniumOnRails::TestBuilder
|
|
|
|
|
end
|
|
|
|
|
ActionView::Template.register_template_handler 'rsel', SeleniumOnRails::RSelenese
|
|
|
|
|
|
|
|
|
|
class SeleniumOnRails::RSelenese < SeleniumOnRails::TestBuilder
|
|
|
|
|
attr_accessor :view
|
|
|
|
|
|
|
|
|
|
def initialize view
|
|
|
|
|
super view
|
|
|
|
|
@view = view
|
|
|
|
|
end
|
|
|
|
|
|
2008-12-02 10:05:41 +01:00
|
|
|
def render template, local_assigns
|
|
|
|
|
title = (@view.assigns['page_title'] or local_assigns['page_title'])
|
2008-06-18 10:13:56 +02:00
|
|
|
table(title) do
|
|
|
|
|
test = self #to enable test.command
|
2008-12-02 10:05:41 +01:00
|
|
|
|
|
|
|
|
assign_locals_code = ''
|
|
|
|
|
local_assigns.each_key {|key| assign_locals_code << "#{key} = local_assigns[#{key.inspect}];"}
|
|
|
|
|
|
|
|
|
|
eval assign_locals_code + "\n" + template.source
|
2008-06-18 10:13:56 +02:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2008-12-02 10:05:41 +01:00
|
|
|
def self.call(template)
|
|
|
|
|
"#{name}.new(self).render(template, local_assigns)"
|
2008-06-18 10:13:56 +02:00
|
|
|
end
|
2008-12-02 10:05:41 +01:00
|
|
|
end
|