diff --git a/tracks/test/selenium/home/create_first_todo.rsel b/tracks/test/selenium/home/create_first_todo.rsel index 578ee8ee..6647e26d 100644 --- a/tracks/test/selenium/home/create_first_todo.rsel +++ b/tracks/test/selenium/home/create_first_todo.rsel @@ -1,9 +1,9 @@ setup :fixtures => :users, :clear_tables => [:projects, :contexts, :todos] login :as => 'admin' open "/" -store_eval "this.browserbot.getCurrentWindow().$$('.context').length", 'initial_context_count' +store_context_count 'initial_context_count' type "todo_description", "a new action" type "todo_context_name", "Brand new context" click "css=#todo-form-new-action .submit_box button" store_eval "${initial_context_count} + 1", 'expected_context_count' -wait_for_eval "this.browserbot.getCurrentWindow().$$('.context').length", "${expected_context_count}" +wait_for_context_count "${expected_context_count}" \ No newline at end of file diff --git a/tracks/test/selenium/home/create_new_todo_with_new_context.rsel b/tracks/test/selenium/home/create_new_todo_with_new_context.rsel index 0a72e302..d8e84197 100644 --- a/tracks/test/selenium/home/create_new_todo_with_new_context.rsel +++ b/tracks/test/selenium/home/create_new_todo_with_new_context.rsel @@ -1,9 +1,9 @@ setup :fixtures => :all login :as => 'admin' open "/" -store_eval "this.browserbot.getCurrentWindow().$$('.context').length", 'initial_context_count' +store_context_count 'initial_context_count' type "todo_description", "a new action" type "todo_context_name", "Brand new context" click "css=#todo-form-new-action .submit_box button" store_eval "${initial_context_count} + 1", 'expected_context_count' -wait_for_eval "this.browserbot.getCurrentWindow().$$('.context').length", "${expected_context_count}" +wait_for_context_count "${expected_context_count}" diff --git a/tracks/test/selenium_helper.rb b/tracks/test/selenium_helper.rb index 0b2ad47d..8549223a 100644 --- a/tracks/test/selenium_helper.rb +++ b/tracks/test/selenium_helper.rb @@ -16,3 +16,29 @@ module SeleniumOnRails::TestBuilderActions open opts end end + +# The accessors available for SeleniumOnRails::TestBuilder tests. +# +# For each +store_foo+ there's +assert_foo+, +assert_not_foo+, +verify_foo+, +# +verify_not_foo+, +wait_for_foo+, +wait_for_not_foo+. +module SeleniumOnRails::TestBuilderAccessors + # Has an alert occurred? + # + # Related Assertions, automatically generated: + # * +assert_context_count+ + # * +assert_not_context_count+ + # * +verify_context_count+ + # * +verify_not_context_count+ + # * +wait_for_context_count+ + # * +wait_for_not_context_count+ + def store_context_count variable_name + command 'storeContextCount', variable_name + end + + each_assertion 'store_context_count' do |assertion_method, command_name| + define_method assertion_method do |expected_count| + command command_name, expected_count + end + end + +end \ No newline at end of file diff --git a/tracks/vendor/selenium/scripts/user-extensions.js b/tracks/vendor/selenium/scripts/user-extensions.js new file mode 100644 index 00000000..bd2c2835 --- /dev/null +++ b/tracks/vendor/selenium/scripts/user-extensions.js @@ -0,0 +1,24 @@ +/* + * By default, Selenium looks for a file called "user-extensions.js", and loads and javascript + * code found in that file. This file is a sample of what that file could look like. + * + * user-extensions.js provides a convenient location for adding extensions to Selenium, like + * new actions, checks and locator-strategies. + * By default, this file does not exist. Users can create this file and place their extension code + * in this common location, removing the need to modify the Selenium sources, and hopefully assisting + * with the upgrade process. + * + * You can find contributed extensions at http://wiki.openqa.org/display/SEL/Contributed%20User-Extensions + */ + +// All get* methods on the Selenium prototype result in +// store, assert, assertNot, verify, verifyNot, waitFor, and waitForNot commands. +// E.g. add a getTextLength method that returns the length of the text +// of a specified element. +// Will result in support for storeContextCount, assertContextCount, etc. +Selenium.prototype.getContextCount = function() { + return this.browserbot.getCurrentWindow().$$('.context').length; +}; + + +