zena 1.2.7 → 1.2.8
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.
- data/History.txt +80 -25
- data/Rakefile +2 -2
- data/app/controllers/columns_controller.rb +2 -2
- data/app/controllers/nodes_controller.rb +22 -29
- data/app/controllers/user_sessions_controller.rb +35 -10
- data/app/controllers/users_controller.rb +2 -2
- data/app/controllers/versions_controller.rb +2 -2
- data/app/models/group.rb +15 -1
- data/app/models/node.rb +109 -8
- data/app/models/role.rb +4 -0
- data/app/models/site.rb +64 -58
- data/app/models/template.rb +1 -1
- data/app/models/user.rb +135 -29
- data/app/models/user_session.rb +0 -1
- data/app/models/virtual_class.rb +11 -6
- data/app/views/columns/_form.html.erb +3 -1
- data/app/views/columns/_li.html.erb +1 -1
- data/app/views/columns/create.rjs +1 -1
- data/app/views/groups/_form.rhtml +16 -13
- data/app/views/relations/_form.erb +18 -6
- data/app/views/sites/_form.erb +12 -6
- data/app/views/users/_form.rhtml +23 -8
- data/app/views/users/_li.rhtml +14 -3
- data/app/views/users/index.rhtml +1 -1
- data/app/views/virtual_classes/_form.erb +12 -2
- data/app/views/zafu/default/Node-+login.zafu +8 -1
- data/app/views/zafu/default/Node-+search.zafu +1 -1
- data/bricks/acls/lib/bricks/acls.rb +1 -0
- data/bricks/acls/zena/migrate/20130903150356_longer_names_for_acl.rb +9 -0
- data/bricks/acls/zena/test/integration/acl_integration_test.rb +2 -2
- data/bricks/currency/lib/bricks/currency.rb +120 -0
- data/bricks/currency/zena/test/unit/currency_test.rb +43 -0
- data/bricks/fs_skin/lib/bricks/fs_skin.rb +1 -1
- data/bricks/fs_skin/zena/skins/blog/Node-+search.zafu +1 -1
- data/bricks/fs_skin/zena/skins/blog/Node.zafu +1 -1
- data/bricks/fs_skin/zena/test/unit/fs_skin_view_test.rb +35 -0
- data/bricks/pdf/lib/bricks/pdf.rb +1 -1
- data/bricks/sphinx/lib/bricks/sphinx.rb +2 -0
- data/bricks/sphinx/zena/init.rb +14 -0
- data/bricks/tags/zena/test/zafu/tags.yml +5 -1
- data/bricks/worker/lib/bricks/worker.rb +3 -2
- data/bricks/zena/zena/migrate/20130829093753_add_versioned_flag_to_column.rb +10 -0
- data/bricks/zena/zena/migrate/20130903084909_count_login_attempts.rb +11 -0
- data/bricks/zena/zena/migrate/20131104153126_index_fullpath.rb +10 -0
- data/bricks/zena/zena/migrate/20131104210011_rebuild_fullpath_after_change.rb +10 -0
- data/bricks/zena/zena/migrate/20131105160420_add_skin_id_to_sites.rb +9 -0
- data/bricks/zena/zena/migrate/20131105175822_add_profile_to_users.rb +11 -0
- data/bricks/zena/zena/migrate/20140213120038_fix_idx_scope.rb +13 -0
- data/bricks/zena/zena/migrate/20140628140247_add_site_readonly.rb +9 -0
- data/config/bricks.yml +8 -4
- data/config/gems.yml +5 -3
- data/db/init/base/skins/default/Node-+login.zafu +8 -1
- data/db/init/base/skins/default/Node-+search.zafu +1 -1
- data/lib/bricks/loader.rb +5 -5
- data/lib/gettext_strings.rb +3 -0
- data/lib/tasks/zena.rake +25 -22
- data/lib/zafu/process/context.rb +4 -0
- data/lib/zena/acts/secure_node.rb +3 -3
- data/lib/zena/app.rb +1 -0
- data/lib/zena/deploy.rb +1 -1
- data/lib/zena/deploy/template.rb +1 -1
- data/lib/zena/foxy_parser.rb +5 -2
- data/lib/zena/info.rb +1 -1
- data/lib/zena/site_worker.rb +2 -2
- data/lib/zena/test_controller.rb +5 -2
- data/lib/zena/use/action.rb +9 -2
- data/lib/zena/use/ajax.rb +20 -4
- data/lib/zena/use/ancestry.rb +89 -15
- data/lib/zena/use/authlogic.rb +8 -2
- data/lib/zena/use/context.rb +1 -0
- data/lib/zena/use/display.rb +1 -97
- data/lib/zena/use/forms.rb +28 -8
- data/lib/zena/use/html_tags.rb +16 -7
- data/lib/zena/use/i18n.rb +1 -1
- data/lib/zena/use/prop_eval.rb +6 -1
- data/lib/zena/use/query_node.rb +69 -4
- data/lib/zena/use/recursion.rb +1 -1
- data/lib/zena/use/refactor.rb +5 -2
- data/lib/zena/use/relations.rb +1 -0
- data/lib/zena/use/rendering.rb +7 -4
- data/lib/zena/use/test_helper.rb +8 -4
- data/lib/zena/use/upload.rb +14 -0
- data/lib/zena/use/urls.rb +39 -23
- data/lib/zena/use/version_hash.rb +5 -2
- data/lib/zena/use/workflow.rb +116 -70
- data/lib/zena/use/zafu_eval.rb +41 -0
- data/lib/zena/use/zafu_safe_definitions.rb +1 -0
- data/lib/zena/use/zafu_templates.rb +32 -26
- data/lib/zena/use/zazen.rb +8 -7
- data/locale/app.pot +5 -1
- data/locale/de/LC_MESSAGES/zena.mo +0 -0
- data/locale/de/zena.po +385 -281
- data/locale/en/LC_MESSAGES/zena.mo +0 -0
- data/locale/en/zena.po +378 -271
- data/locale/fr/LC_MESSAGES/zena.mo +0 -0
- data/locale/fr/zena.po +387 -272
- data/locale/it/LC_MESSAGES/zena.mo +0 -0
- data/locale/it/zena.po +433 -404
- data/locale/zena.pot +362 -268
- data/public/javascripts/grid.js +280 -104
- data/public/javascripts/zena.js +43 -15
- data/public/stylesheets/admin.css +8 -2
- data/public/stylesheets/grid.css +5 -2
- data/public/stylesheets/popup.css +1 -1
- data/test/fixtures/files/TestNode.zafu +51 -0
- data/test/functional/nodes_controller_test.rb +20 -5
- data/test/functional/user_sessions_controller_test.rb +41 -6
- data/test/functional/users_controller_test.rb +1 -2
- data/test/integration/navigation_test.rb +22 -4
- data/test/integration/query_node/basic.yml +7 -0
- data/test/integration/query_node/complex.yml +1 -1
- data/test/integration/query_node/errors.yml +1 -1
- data/test/integration/query_node/filters.yml +34 -1
- data/test/integration/query_node/relations.yml +6 -13
- data/test/integration/query_node_test.rb +22 -3
- data/test/integration/zafu_compiler/action.yml +1 -1
- data/test/integration/zafu_compiler/alias_site.yml +52 -0
- data/test/integration/zafu_compiler/complex.yml +1 -1
- data/test/integration/zafu_compiler/complex_ok.yml +5 -5
- data/test/integration/zafu_compiler/context.yml +1 -1
- data/test/integration/zafu_compiler/display.yml +56 -5
- data/test/integration/zafu_compiler/forms.yml +35 -2
- data/test/integration/zafu_compiler/meta.yml +4 -0
- data/test/integration/zafu_compiler/rubyless.yml +1 -1
- data/test/integration/zafu_compiler/safe_definitions.yml +4 -0
- data/test/integration/zafu_compiler/security.yml +10 -0
- data/test/integration/zafu_compiler/site.yml +5 -1
- data/test/integration/zafu_compiler/urls.yml +8 -2
- data/test/integration/zafu_compiler/zafu_attributes.yml +2 -1
- data/test/integration/zafu_compiler/zazen.yml +4 -0
- data/test/integration/zafu_compiler_test.rb +47 -4
- data/test/selenium/Grid/grid1.rsel +8 -8
- data/test/sites/complex/sites.yml +2 -2
- data/test/sites/complex/users.yml +1 -0
- data/test/sites/zena/columns.yml +4 -0
- data/test/sites/zena/sites.yml +1 -0
- data/test/sites/zena/users.yml +1 -0
- data/test/unit/node_test.rb +53 -5
- data/test/unit/note_test.rb +1 -1
- data/test/unit/relation_proxy_test.rb +20 -0
- data/test/unit/role_test.rb +2 -0
- data/test/unit/site_test.rb +28 -6
- data/test/unit/user_test.rb +332 -1
- data/test/unit/virtual_class_test.rb +55 -0
- data/test/unit/workflow_test.rb +175 -0
- data/test/unit/zena/use/ancestry_test.rb +52 -10
- data/test/unit/zena/use/prop_eval_test.rb +44 -0
- data/test/unit/zena/use/rendering_test.rb +48 -2
- data/test/unit/zena/use/upload_test.rb +15 -13
- data/test/unit/zena/use/urls_test.rb +1 -0
- data/vendor/plugins/ar_mysql_full_text/lib/ar_mysql_full_text.rb +39 -25
- data/zena.gemspec +69 -307
- metadata +143 -368
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run 2.tmCommand +0 -24
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Context.tmCommand +0 -58
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Focused Should.tmCommand +0 -88
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run.tmCommand +0 -27
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/YAML to Shoulda.tmCommand +0 -23
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Context.tmPreferences +0 -19
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Should.tmPreferences +0 -19
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory attributes for.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory build.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define with class.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_next.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_sequence.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_bad_value.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_contains.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_does_not_contain.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_good_value.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_same_elements.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_save.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_sent_email.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_valid.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/association.tmSnippet +0 -17
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/attribute.tmSnippet +0 -17
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/before_should block.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block get.tmSnippet +0 -22
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block post.tmSnippet +0 -23
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block with setup.tmSnippet +0 -25
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/setup.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block with before proc.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_allow_values_for.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_assign_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful denied.tmSnippet +0 -20
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful.tmSnippet +0 -20
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_belong_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change by.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change from to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_at_least.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_in_range.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_is.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_value_in_range.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_eventually.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_filter_params.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_and_belong_to_many.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_class_methods.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_column.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_columns.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_index.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_indices.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_instance_methods.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_many.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_named_scope.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_one.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_readonly_attributes.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_mass_assignment_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_values_for.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_assign_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_change.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_set_the_flash.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_redirect_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_a_form.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_template.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_with_layout.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_without_layout.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with_content_type.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_return_from_session.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_route.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_set_the_flash_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_acceptance_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_numericality_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_presence_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of with scope.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/catch_exception.rb +0 -39
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/run_script.rb +0 -104
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/stdin_dialog.rb +0 -14
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/test.rb +0 -17
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/todo.txt +0 -13
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/bin/yaml_to_shoulda.rb +0 -25
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Syntaxes/Ruby on Rails (Shoulda).tmLanguage +0 -166
- data/vendor/TextMate/Ruby Shoulda.tmbundle/info.plist +0 -304
- data/vendor/TextMate/Zena.tmbundle/Commands/Run all yaml tests.tmCommand +0 -37
- data/vendor/TextMate/Zena.tmbundle/Commands/Run focused yaml test.tmCommand +0 -52
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/catch_exception.rb +0 -39
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/run_script.rb +0 -118
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/stdin_dialog.rb +0 -14
- data/vendor/TextMate/Zena.tmbundle/info.plist +0 -17
- data/vendor/plugins/selenium-on-rails/CHANGELOG +0 -125
- data/vendor/plugins/selenium-on-rails/LICENSE-2.0.txt +0 -202
- data/vendor/plugins/selenium-on-rails/README.md +0 -202
- data/vendor/plugins/selenium-on-rails/Rakefile +0 -38
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumController.html +0 -265
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumHelper.html +0 -148
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails.html +0 -126
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/FixtureLoader.html +0 -231
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/PartialsSupport.html +0 -195
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/Paths.html +0 -295
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/RSelenese.html +0 -219
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/Renderer.html +0 -156
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/Selenese.html +0 -179
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/SuiteRenderer.html +0 -223
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilder.html +0 -441
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderAccessors.html +0 -3098
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderActions.html +0 -2080
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderUserAccessors.html +0 -116
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderUserActions.html +0 -116
- data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRailsConfig.html +0 -150
- data/vendor/plugins/selenium-on-rails/doc/files/CHANGELOG.html +0 -422
- data/vendor/plugins/selenium-on-rails/doc/files/README.html +0 -321
- data/vendor/plugins/selenium-on-rails/doc/files/lib/controllers/selenium_controller_rb.html +0 -108
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_helper_rb.html +0 -101
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/acceptance_test_runner_rb.html +0 -222
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/fixture_loader_rb.html +0 -109
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/partials_support_rb.html +0 -111
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/paths_rb.html +0 -101
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/renderer_rb.html +0 -101
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/rselenese_rb.html +0 -118
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/selenese_rb.html +0 -101
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/suite_renderer_rb.html +0 -101
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/test_builder_accessors_rb.html +0 -114
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/test_builder_actions_rb.html +0 -113
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/test_builder_rb.html +0 -120
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails_config_rb.html +0 -108
- data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails_rb.html +0 -115
- data/vendor/plugins/selenium-on-rails/doc/fr_class_index.html +0 -42
- data/vendor/plugins/selenium-on-rails/doc/fr_file_index.html +0 -43
- data/vendor/plugins/selenium-on-rails/doc/fr_method_index.html +0 -182
- data/vendor/plugins/selenium-on-rails/doc/index.html +0 -24
- data/vendor/plugins/selenium-on-rails/doc/rdoc-style.css +0 -208
- data/vendor/plugins/selenium-on-rails/generators/selenium/USAGE +0 -19
- data/vendor/plugins/selenium-on-rails/generators/selenium/selenium_generator.rb +0 -50
- data/vendor/plugins/selenium-on-rails/generators/selenium/templates/rhtml.rhtml +0 -16
- data/vendor/plugins/selenium-on-rails/generators/selenium/templates/rselenese.rhtml +0 -14
- data/vendor/plugins/selenium-on-rails/generators/selenium/templates/selenese.rhtml +0 -11
- data/vendor/plugins/selenium-on-rails/init.rb +0 -15
- data/vendor/plugins/selenium-on-rails/lib/controllers/selenium_controller.rb +0 -122
- data/vendor/plugins/selenium-on-rails/lib/controllers/switch_environment_controller.rb +0 -16
- data/vendor/plugins/selenium-on-rails/lib/selenium_helper.rb +0 -8
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails.rb +0 -11
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/acceptance_test_runner.rb +0 -215
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/fixture_loader.rb +0 -57
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb +0 -36
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/paths.rb +0 -61
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/renderer.rb +0 -20
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/rselenese.rb +0 -44
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/selenese.rb +0 -87
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/suite_renderer.rb +0 -56
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder.rb +0 -116
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_accessors.rb +0 -1002
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_actions.rb +0 -514
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_user_accessors.rb.example +0 -91
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_user_actions.rb.example +0 -24
- data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails_config.rb +0 -30
- data/vendor/plugins/selenium-on-rails/lib/views/layouts/layout.rhtml +0 -18
- data/vendor/plugins/selenium-on-rails/lib/views/record.rhtml +0 -5
- data/vendor/plugins/selenium-on-rails/lib/views/selenium_helper.rb +0 -9
- data/vendor/plugins/selenium-on-rails/lib/views/setup.rhtml +0 -67
- data/vendor/plugins/selenium-on-rails/lib/views/test_suite.rhtml +0 -26
- data/vendor/plugins/selenium-on-rails/routes.rb +0 -24
- data/vendor/plugins/selenium-on-rails/selenium-core/Blank.html +0 -7
- data/vendor/plugins/selenium-on-rails/selenium-core/InjectedRemoteRunner.html +0 -8
- data/vendor/plugins/selenium-on-rails/selenium-core/RemoteRunner.html +0 -110
- data/vendor/plugins/selenium-on-rails/selenium-core/SeleniumLog.html +0 -109
- data/vendor/plugins/selenium-on-rails/selenium-core/TestPrompt.html +0 -145
- data/vendor/plugins/selenium-on-rails/selenium-core/TestRunner-splash.html +0 -55
- data/vendor/plugins/selenium-on-rails/selenium-core/TestRunner.hta +0 -177
- data/vendor/plugins/selenium-on-rails/selenium-core/TestRunner.html +0 -177
- data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/butmin.gif +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/butplus.gif +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/domviewer.css +0 -298
- data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/domviewer.html +0 -16
- data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/selenium-domviewer.js +0 -205
- data/vendor/plugins/selenium-on-rails/selenium-core/icons/all.png +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/icons/continue.png +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/icons/continue_disabled.png +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/icons/pause.png +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/icons/pause_disabled.png +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/icons/selected.png +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/icons/step.png +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/icons/step_disabled.png +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/iedoc-core.xml +0 -1759
- data/vendor/plugins/selenium-on-rails/selenium-core/iedoc.xml +0 -1800
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/cssQuery-p.js +0 -6
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery-level2.js +0 -142
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery-level3.js +0 -150
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery-standard.js +0 -53
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery.js +0 -356
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/prototype.js +0 -2006
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/builder.js +0 -101
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/controls.js +0 -815
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/dragdrop.js +0 -915
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/effects.js +0 -958
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/scriptaculous.js +0 -47
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/slider.js +0 -283
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/unittest.js +0 -383
- data/vendor/plugins/selenium-on-rails/selenium-core/lib/snapsie.js +0 -91
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/find_matching_child.js +0 -69
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/htmlutils.js +0 -1616
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/injection.html +0 -72
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-api.js +0 -3184
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-browserbot.js +0 -2300
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-browserdetect.js +0 -153
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-commandhandlers.js +0 -377
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-executionloop.js +0 -175
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-logging.js +0 -148
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-remoterunner.js +0 -695
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-testrunner.js +0 -1362
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-version.js +0 -5
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/ui-doc.html +0 -803
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/ui-element.js +0 -1537
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/ui-map-sample.js +0 -979
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/user-extensions.js +0 -3
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/user-extensions.js.sample +0 -75
- data/vendor/plugins/selenium-on-rails/selenium-core/scripts/xmlextras.js +0 -153
- data/vendor/plugins/selenium-on-rails/selenium-core/selenium-logo.png +0 -0
- data/vendor/plugins/selenium-on-rails/selenium-core/selenium-test.css +0 -43
- data/vendor/plugins/selenium-on-rails/selenium-core/selenium.css +0 -316
- data/vendor/plugins/selenium-on-rails/selenium-core/xpath/dom.js +0 -566
- data/vendor/plugins/selenium-on-rails/selenium-core/xpath/javascript-xpath-0.1.11.js +0 -2816
- data/vendor/plugins/selenium-on-rails/selenium-core/xpath/util.js +0 -549
- data/vendor/plugins/selenium-on-rails/selenium-core/xpath/xmltoken.js +0 -149
- data/vendor/plugins/selenium-on-rails/selenium-core/xpath/xpath.js +0 -2450
- data/vendor/plugins/selenium-on-rails/tasks/test_acceptance.rake +0 -8
- data/vendor/plugins/selenium-on-rails/test/fixtures/config.yml +0 -37
- data/vendor/plugins/selenium-on-rails/test/fixtures/selenium.yml +0 -27
- data/vendor/plugins/selenium-on-rails/test/paths_test.rb +0 -72
- data/vendor/plugins/selenium-on-rails/test/renderer_test.rb +0 -157
- data/vendor/plugins/selenium-on-rails/test/rselenese_test.rb +0 -708
- data/vendor/plugins/selenium-on-rails/test/selenese_test.rb +0 -242
- data/vendor/plugins/selenium-on-rails/test/selenium_controller_test.rb +0 -67
- data/vendor/plugins/selenium-on-rails/test/selenium_on_rails_config_test.rb +0 -43
- data/vendor/plugins/selenium-on-rails/test/selenium_support_test.rb +0 -35
- data/vendor/plugins/selenium-on-rails/test/setup_test.rb +0 -31
- data/vendor/plugins/selenium-on-rails/test/suite_renderer_test.rb +0 -109
- data/vendor/plugins/selenium-on-rails/test/switch_environment_controller_test.rb +0 -17
- data/vendor/plugins/selenium-on-rails/test/test_builder_functions_authortest.rb +0 -51
- data/vendor/plugins/selenium-on-rails/test/test_helper.rb +0 -101
- data/vendor/plugins/selenium-on-rails/test_data/_partial.rsel +0 -1
- data/vendor/plugins/selenium-on-rails/test_data/own_layout.html +0 -12
- data/vendor/plugins/selenium-on-rails/test_data/partials/_html.html +0 -6
- data/vendor/plugins/selenium-on-rails/test_data/partials/_nesting.rsel +0 -2
- data/vendor/plugins/selenium-on-rails/test_data/partials/_rhtml.rhtml +0 -6
- data/vendor/plugins/selenium-on-rails/test_data/partials/_rsel.rsel +0 -1
- data/vendor/plugins/selenium-on-rails/test_data/partials/_sel.sel +0 -5
- data/vendor/plugins/selenium-on-rails/test_data/partials/all_partials.rsel +0 -5
- data/vendor/plugins/selenium-on-rails/test_data/rhtml.rhtml +0 -7
- data/vendor/plugins/selenium-on-rails/test_data/rselenese.rsel +0 -8
- data/vendor/plugins/selenium-on-rails/test_data/selenese.sel +0 -7
- data/vendor/plugins/selenium-on-rails/test_data/suite_one/subsuite/suite_one_subsuite_testcase.sel +0 -1
- data/vendor/plugins/selenium-on-rails/test_data/suite_one/suite_one_testcase1.sel +0 -1
- data/vendor/plugins/selenium-on-rails/test_data/suite_one/suite_one_testcase2.sel +0 -1
- data/vendor/plugins/selenium-on-rails/test_data/suite_two/suite_two_testcase.sel +0 -1
|
@@ -1,514 +0,0 @@
|
|
|
1
|
-
# The actions available for SeleniumOnRails::TestBuilder tests.
|
|
2
|
-
#
|
|
3
|
-
# For each action +foo+ there's also an action +foo_and_wait+.
|
|
4
|
-
module SeleniumOnRails::TestBuilderActions
|
|
5
|
-
# Tell Selenium on Rails to clear the session and load any fixtures. DO
|
|
6
|
-
# NOT CALL THIS AGAINST NON-TEST DATABASES.
|
|
7
|
-
# The supported +options+ are <code>:keep_session</code>,
|
|
8
|
-
# <code>:fixtures</code> and <code>:clear_tables</code>
|
|
9
|
-
# setup
|
|
10
|
-
# setup :keep_session
|
|
11
|
-
# setup :fixtures => :all
|
|
12
|
-
# setup :keep_session, :fixtures => [:foo, :bar]
|
|
13
|
-
# setup :clear_tables => [:foo, :bar]
|
|
14
|
-
def setup options = {}
|
|
15
|
-
options = {options => nil} unless options.is_a? Hash
|
|
16
|
-
|
|
17
|
-
opts = {:controller => 'selenium', :action => 'setup'}
|
|
18
|
-
opts[:keep_session] = true if options.has_key? :keep_session
|
|
19
|
-
|
|
20
|
-
[:fixtures, :clear_tables].each do |key|
|
|
21
|
-
if (f = options[key])
|
|
22
|
-
f = [f] unless f.is_a? Array
|
|
23
|
-
opts[key] = f.join ','
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
open opts
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Includes a partial.
|
|
31
|
-
# The path is relative to the Selenium tests root. The starting _ and the file
|
|
32
|
-
# extension don't have to be specified.
|
|
33
|
-
# #include test/selenium/_partial.*
|
|
34
|
-
# include_partial 'partial'
|
|
35
|
-
# #include test/selenium/suite/_partial.*
|
|
36
|
-
# include_partial 'suite/partial'
|
|
37
|
-
# #include test/selenium/suite/_partial.* and provide local assigns
|
|
38
|
-
# include_partial 'suite/partial', :foo => bar
|
|
39
|
-
def include_partial path, local_assigns = {}
|
|
40
|
-
partial = @view.render :partial => path, :locals => local_assigns
|
|
41
|
-
@output << partial
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# Clicks on a link, button, checkbox or radio button. If the click action
|
|
45
|
-
# causes a new page to load (like a link usually does), call
|
|
46
|
-
# +wait_for_page_to_load+.
|
|
47
|
-
def click locator
|
|
48
|
-
command 'click', locator
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# Clicks on a link, button, checkbox or radio button. If the click action causes
|
|
52
|
-
# a new page to load (like a link usually does), call wait_for_page_to_load.
|
|
53
|
-
def click_at locator, coord_string
|
|
54
|
-
command 'clickAt', locator, coord_string
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# Explicitly simulate an event (e.g. <tt>"focus"</tt>, <tt>"blur"</tt>), to
|
|
58
|
-
# trigger the corresponding <tt>"on_event_"</tt> handler.
|
|
59
|
-
def fire_event locator, event_name
|
|
60
|
-
command 'fireEvent', locator, event_name
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# Simulates a user pressing and releasing a key.
|
|
64
|
-
#
|
|
65
|
-
# +keycode+ is the numeric keycode of the key to be pressed, normally the
|
|
66
|
-
# ASCII value of that key.
|
|
67
|
-
def key_press locator, keycode
|
|
68
|
-
command 'keyPress', locator, keycode
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
# Simulates a user pressing a key (without releasing it yet).
|
|
72
|
-
#
|
|
73
|
-
# +keycode+ is the numeric keycode of the key to be pressed, normally the
|
|
74
|
-
# ASCII value of that key.
|
|
75
|
-
def key_down locator, keycode
|
|
76
|
-
command 'keyDown', locator, keycode
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# Simulates a user releasing a key.
|
|
80
|
-
#
|
|
81
|
-
# +keycode+ is the numeric keycode of the key to be released, normally the
|
|
82
|
-
# ASCII value of that key.
|
|
83
|
-
def key_up locator, keycode
|
|
84
|
-
command 'keyUp', locator, keycode
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
# Simulates a user hovering a mouse over the specified element.
|
|
88
|
-
def mouse_over locator
|
|
89
|
-
command 'mouseOver', locator
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
# Simulates a user pressing the mouse button (without releasing it yet) on the
|
|
93
|
-
# specified element.
|
|
94
|
-
def mouse_down locator
|
|
95
|
-
command 'mouseDown', locator
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
# Sets the value of an input field, as though you typed it in.
|
|
99
|
-
#
|
|
100
|
-
# Can also be used to set the value of combo boxes, check boxes, etc. In these
|
|
101
|
-
# cases, +value+ should be the value of the option selected, not the visible
|
|
102
|
-
# text.
|
|
103
|
-
def type locator, value
|
|
104
|
-
command 'type', locator, value
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
# Check a toggle-button (checkbox/radio).
|
|
108
|
-
def check locator
|
|
109
|
-
command 'check', locator
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
# Uncheck a toggle-button (checkbox/radio).
|
|
113
|
-
def uncheck locator
|
|
114
|
-
command 'uncheck', locator
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
# Select an option from a drop-down using an option locator.
|
|
118
|
-
#
|
|
119
|
-
# Option locators provide different ways of specifying options of an HTML
|
|
120
|
-
# Select element (e.g. for selecting a specific option, or for asserting that
|
|
121
|
-
# the selected option satisfies a specification). There are several forms of
|
|
122
|
-
# Select Option Locator.
|
|
123
|
-
#
|
|
124
|
-
# * label=labelPattern
|
|
125
|
-
# matches options based on their labels, i.e. the visible text. (This is the
|
|
126
|
-
# default.)
|
|
127
|
-
# label=regexp:^[Oo]ther
|
|
128
|
-
# * value=valuePattern
|
|
129
|
-
# matches options based on their values.
|
|
130
|
-
# value=other
|
|
131
|
-
# * id=id
|
|
132
|
-
# matches options based on their ids.
|
|
133
|
-
# id=option1
|
|
134
|
-
# * index=index
|
|
135
|
-
# matches an option based on its index (offset from zero).
|
|
136
|
-
# index=2
|
|
137
|
-
#
|
|
138
|
-
# If no option locator prefix is provided, the default behaviour is to match
|
|
139
|
-
# on label.
|
|
140
|
-
def select locator, option_locator
|
|
141
|
-
command 'select', locator, option_locator
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
# Add a selection to the set of selected options in a multi-select element
|
|
145
|
-
# using an option locator.
|
|
146
|
-
#
|
|
147
|
-
# See the <tt>#select</tt> command for more information about option locators.
|
|
148
|
-
def add_selection locator, option_locator
|
|
149
|
-
command 'addSelection', locator, option_locator
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
# Remove a selection from the set of selected options in a multi-select
|
|
153
|
-
# element using an option locator.
|
|
154
|
-
#
|
|
155
|
-
# See the +select+ command for more information about option locators.
|
|
156
|
-
def remove_selection locator, option_locator
|
|
157
|
-
command 'removeSelection', locator, option_locator
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
# Submit the specified form. This is particularly useful for forms without
|
|
161
|
-
# submit buttons, e.g. single-input "Search" forms.
|
|
162
|
-
def submit locator
|
|
163
|
-
command 'submit', locator
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
# Opens an URL in the test frame. This accepts both relative and absolute
|
|
167
|
-
# URLs. The <tt>open</tt> command waits for the page to load before
|
|
168
|
-
# proceeding, i.e. you don't have to call +wait_for_page_to_load+.
|
|
169
|
-
#
|
|
170
|
-
# Note: The URL must be on the same domain as the runner HTML due to security
|
|
171
|
-
# restrictions in the browser (Same Origin Policy).
|
|
172
|
-
def open url
|
|
173
|
-
command 'open', url_arg(url)
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
# Selects a popup window; once a popup window has been selected, all commands
|
|
177
|
-
# go to that window. To select the main window again, use +nil+ as the target.
|
|
178
|
-
def select_window window_id
|
|
179
|
-
command 'selectWindow', window_id||'null'
|
|
180
|
-
end
|
|
181
|
-
|
|
182
|
-
# Waits for a popup window to appear and load up.
|
|
183
|
-
#
|
|
184
|
-
# The +timeout+ is specified in milliseconds.
|
|
185
|
-
def wait_for_popup window_id, timeout
|
|
186
|
-
command 'waitForPopUp', window_id||'null', timeout
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
# By default, Selenium's overridden <tt>window.confirm()</tt> function will return
|
|
190
|
-
# +true+, as if the user had manually clicked OK. After running this command,
|
|
191
|
-
# the next call to <tt>confirm()</tt> will return +false+, as if the user had clicked
|
|
192
|
-
# Cancel.
|
|
193
|
-
def choose_cancel_on_next_confirmation
|
|
194
|
-
command 'chooseCancelOnNextConfirmation'
|
|
195
|
-
end
|
|
196
|
-
|
|
197
|
-
# Instructs Selenium to return the specified answer string in response to the
|
|
198
|
-
# next JavaScript prompt (<tt>window.prompt()</tt>).
|
|
199
|
-
def answer_on_next_prompt answer
|
|
200
|
-
command 'answerOnNextPrompt', answer
|
|
201
|
-
end
|
|
202
|
-
|
|
203
|
-
# Simulates the user clicking the "back" button on their browser.
|
|
204
|
-
def go_back
|
|
205
|
-
command 'goBack'
|
|
206
|
-
end
|
|
207
|
-
|
|
208
|
-
# Simulates the user clicking the "Refresh" button on their browser.
|
|
209
|
-
def refresh
|
|
210
|
-
command 'refresh'
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
# Simulates the user clicking the "close" button in the titlebar of a popup
|
|
214
|
-
# window or tab.
|
|
215
|
-
def close
|
|
216
|
-
command 'close'
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
# Simulates the user pressing the alt key and hold it down until do_alt_up()
|
|
220
|
-
# is called or a new page is loaded.
|
|
221
|
-
def alt_key_down
|
|
222
|
-
command 'altKeyDown'
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
# Simulates the user releasing the alt key.
|
|
226
|
-
def alt_key_up
|
|
227
|
-
command 'altKeyUp'
|
|
228
|
-
end
|
|
229
|
-
|
|
230
|
-
# Halt the currently running test, and wait for the user to press the Continue
|
|
231
|
-
# button. This command is useful for debugging, but be careful when using it,
|
|
232
|
-
# because it will force automated tests to hang until a user intervenes manually.
|
|
233
|
-
#
|
|
234
|
-
# NOTE: <tt>break</tt> is a reserved word in Ruby, so we have to simulate
|
|
235
|
-
# Selenium core's <tt>break()</tt> with <tt>brake()</tt>
|
|
236
|
-
def brake
|
|
237
|
-
command 'break'
|
|
238
|
-
end
|
|
239
|
-
|
|
240
|
-
# Simulates the user pressing the alt key and hold it down until do_control_up()
|
|
241
|
-
# is called or a new page is loaded.
|
|
242
|
-
def control_key_down
|
|
243
|
-
command 'controlKeyDown'
|
|
244
|
-
end
|
|
245
|
-
|
|
246
|
-
# Simulates the user releasing the control key.
|
|
247
|
-
def control_key_up
|
|
248
|
-
command 'controlKeyUp'
|
|
249
|
-
end
|
|
250
|
-
|
|
251
|
-
# Create a new cookie whose path and domain are same with those of current page
|
|
252
|
-
# under test, unless you specified a path for this cookie explicitly.
|
|
253
|
-
#
|
|
254
|
-
# Arguments:
|
|
255
|
-
# * <tt>name_value_pair</tt> - name and value of the cookie in a format "name=value"
|
|
256
|
-
# * <tt>options_string</tt> - options for the cookie. Currently supported options
|
|
257
|
-
# include 'path' and 'max_age'. The options_string's format is
|
|
258
|
-
# <tt>"path=/path/, max_age=60"</tt>. The order of options are irrelevant, the
|
|
259
|
-
# unit of the value of 'max_age' is second.
|
|
260
|
-
def create_cookie name_value_pair, options_string
|
|
261
|
-
command 'createCookie', name_value_pair, options_string
|
|
262
|
-
end
|
|
263
|
-
|
|
264
|
-
# Delete a named cookie with specified path.
|
|
265
|
-
def delete_cookie name, path
|
|
266
|
-
command 'deleteCookie', name, path
|
|
267
|
-
end
|
|
268
|
-
|
|
269
|
-
# Double clicks on a link, button, checkbox or radio button. If the double click action
|
|
270
|
-
# causes a new page to load (like a link usually does), call <tt>wait_for_page_to_load</tt>.
|
|
271
|
-
def double_click locator
|
|
272
|
-
command 'doubleClick', locator
|
|
273
|
-
end
|
|
274
|
-
|
|
275
|
-
# Doubleclicks on a link, button, checkbox or radio button. If the action causes a new page
|
|
276
|
-
# to load (like a link usually does), call <tt>wait_for_page_to_load</tt>.
|
|
277
|
-
def double_click_at locator, coord_string
|
|
278
|
-
command 'doubleClickAt', locator, coord_string
|
|
279
|
-
end
|
|
280
|
-
|
|
281
|
-
# Drags an element a certain distance and then drops it.
|
|
282
|
-
def drag_and_drop locator, movements_string
|
|
283
|
-
command 'dragAndDrop', locator, movements_string
|
|
284
|
-
end
|
|
285
|
-
|
|
286
|
-
# Drags an element and drops it on another element.
|
|
287
|
-
def drag_and_drop_to_object locator_of_object_to_be_dragged, locator_of_drag_destination_object
|
|
288
|
-
command 'dragAndDropToObject', locator_of_object_to_be_dragged, locator_of_drag_destination_object
|
|
289
|
-
end
|
|
290
|
-
|
|
291
|
-
# Prints the specified message into the third table cell in your Selenese
|
|
292
|
-
# tables.
|
|
293
|
-
# Useful for debugging.
|
|
294
|
-
def echo message
|
|
295
|
-
command 'echo', message
|
|
296
|
-
end
|
|
297
|
-
|
|
298
|
-
# Briefly changes the backgroundColor of the specified element yellow.
|
|
299
|
-
# Useful for debugging.
|
|
300
|
-
def highlight locator
|
|
301
|
-
command 'highlight', locator
|
|
302
|
-
end
|
|
303
|
-
|
|
304
|
-
# Press the meta key and hold it down until <tt>doMetaUp()</tt> is called or
|
|
305
|
-
# a new page is loaded.
|
|
306
|
-
def meta_key_down
|
|
307
|
-
command 'metaKeyDown'
|
|
308
|
-
end
|
|
309
|
-
|
|
310
|
-
# Release the meta key.
|
|
311
|
-
def meta_key_up
|
|
312
|
-
command 'metaKeyUp'
|
|
313
|
-
end
|
|
314
|
-
|
|
315
|
-
# Simulates a user pressing the mouse button (without releasing it yet) on the specified
|
|
316
|
-
# element.
|
|
317
|
-
def mouse_down_at locator, coord_string
|
|
318
|
-
command 'mouseDownAt', locator, coord_string
|
|
319
|
-
end
|
|
320
|
-
|
|
321
|
-
# Simulates a user moving the mouse.
|
|
322
|
-
def mouse_move locator
|
|
323
|
-
command 'mouseMove', locator
|
|
324
|
-
end
|
|
325
|
-
|
|
326
|
-
# Simulates a user moving the mouse relative to the specified element.
|
|
327
|
-
def mouse_move_at locator, coord_string
|
|
328
|
-
command 'mouseMoveAt', locator, coord_string
|
|
329
|
-
end
|
|
330
|
-
|
|
331
|
-
# Simulates the user moving the mouse off the specified element.
|
|
332
|
-
def mouse_out locator
|
|
333
|
-
command 'mouseOut', locator
|
|
334
|
-
end
|
|
335
|
-
|
|
336
|
-
# Simulates the user releasing the mouse button on the specified element.
|
|
337
|
-
def mouse_up locator
|
|
338
|
-
command 'mouseUp', locator
|
|
339
|
-
end
|
|
340
|
-
|
|
341
|
-
# Simulates a user pressing the mouse button (without releasing it yet) on the
|
|
342
|
-
# specified element.
|
|
343
|
-
def mouse_up_at locator, coord_string
|
|
344
|
-
command 'mouseUpAt', locator, coord_string
|
|
345
|
-
end
|
|
346
|
-
|
|
347
|
-
# Opens a popup window (if a window with that ID isn't already open). After opening the
|
|
348
|
-
# window, you'll need to select it using the <tt>select_window</tt> command.
|
|
349
|
-
#
|
|
350
|
-
# This command can also be a useful workaround for bug SEL-339. In some cases, Selenium
|
|
351
|
-
# will be unable to intercept a call to window.open (if the call occurs during or before
|
|
352
|
-
# the "onLoad" event, for example). In those cases, you can force Selenium to notice the
|
|
353
|
-
# open window's name by using the Selenium openWindow command, using an empty (blank) url,
|
|
354
|
-
# like this: <tt>open_window("", "myFunnyWindow")</tt>.
|
|
355
|
-
def open_window url, window_id
|
|
356
|
-
command 'openWindow', url, window_id
|
|
357
|
-
end
|
|
358
|
-
|
|
359
|
-
# Wait for the specified amount of time (in milliseconds).
|
|
360
|
-
def pause wait_time
|
|
361
|
-
command 'pause', wait_time
|
|
362
|
-
end
|
|
363
|
-
|
|
364
|
-
# Unselects all of the selected options in a multi-select element.
|
|
365
|
-
def remove_all_selections locator
|
|
366
|
-
command 'removeAllSelections', locator
|
|
367
|
-
end
|
|
368
|
-
|
|
369
|
-
# Selects a frame within the current window. (You may invoke this command multiple times
|
|
370
|
-
# to select nested frames.) To select the parent frame, use "relative=parent" as a
|
|
371
|
-
# locator; to select the top frame, use "relative=top".
|
|
372
|
-
#
|
|
373
|
-
# You may also use a DOM expression to identify the frame you want directly, like this:
|
|
374
|
-
# <tt>dom=frames["main"].frames["subframe"]</tt>
|
|
375
|
-
def select_frame locator
|
|
376
|
-
command 'selectFrame', locator
|
|
377
|
-
end
|
|
378
|
-
|
|
379
|
-
# Moves the text cursor to the specified position in the given input element or textarea.
|
|
380
|
-
# This method will fail if the specified element isn't an input element or textarea.
|
|
381
|
-
def set_cursor_position locator, position
|
|
382
|
-
command 'setCursorPosition', locator, position
|
|
383
|
-
end
|
|
384
|
-
|
|
385
|
-
# Configure the number of pixels between "mousemove" events during dragAndDrop commands
|
|
386
|
-
# (default=10).
|
|
387
|
-
# Setting this value to 0 means that we'll send a "mousemove" event to every single pixel
|
|
388
|
-
# in between the start location and the end location; that can be very slow, and may
|
|
389
|
-
# cause some browsers to force the JavaScript to timeout.
|
|
390
|
-
#
|
|
391
|
-
# If the mouse speed is greater than the distance between the two dragged objects, we'll
|
|
392
|
-
# just send one "mousemove" at the start location and then one final one at the end location.
|
|
393
|
-
def set_mouse_speed pixels
|
|
394
|
-
command 'setMouseSpeed', pixels
|
|
395
|
-
end
|
|
396
|
-
|
|
397
|
-
# Press the shift key and hold it down until <tt>doShiftUp()</tt> is called or a new page
|
|
398
|
-
# is loaded.
|
|
399
|
-
def shift_key_down
|
|
400
|
-
command 'shiftKeyDown'
|
|
401
|
-
end
|
|
402
|
-
|
|
403
|
-
# Release the shift key.
|
|
404
|
-
def shift_key_up
|
|
405
|
-
command 'shiftKeyUp'
|
|
406
|
-
end
|
|
407
|
-
|
|
408
|
-
# This command is a synonym for <tt>store_expression</tt>.
|
|
409
|
-
def store expression, variable_name
|
|
410
|
-
command 'store', expression, variable_name
|
|
411
|
-
end
|
|
412
|
-
|
|
413
|
-
# Simulates keystroke events on the specified element, as though you typed the value
|
|
414
|
-
# key-by-key.
|
|
415
|
-
#
|
|
416
|
-
# This is a convenience method for calling <tt>key_down</tt>, <tt>key_up</tt>,
|
|
417
|
-
# <tt>key_press</tt> for every character in the specified string; this is useful for
|
|
418
|
-
# dynamic UI widgets (like auto-completing combo boxes) that require explicit key events.
|
|
419
|
-
#
|
|
420
|
-
# Unlike the simple "type" command, which forces the specified value into the page directly,
|
|
421
|
-
# this command may or may not have any visible effect, even in cases where typing keys would
|
|
422
|
-
# normally have a visible effect. For example, if you use "<tt>type_keys</tt>" on a form
|
|
423
|
-
# element, you may or may not see the results of what you typed in the field.
|
|
424
|
-
#
|
|
425
|
-
# In some cases, you may need to use the simple "type" command to set the value of the field
|
|
426
|
-
# and then the "<tt>type_keys</tt>" command to send the keystroke events corresponding to
|
|
427
|
-
# what you just typed.
|
|
428
|
-
def type_keys locator, value
|
|
429
|
-
command 'typeKeys', locator, value
|
|
430
|
-
end
|
|
431
|
-
|
|
432
|
-
# Gives focus to a window.
|
|
433
|
-
def window_focus window_name
|
|
434
|
-
command 'windowFocus', window_name
|
|
435
|
-
end
|
|
436
|
-
|
|
437
|
-
# Resize window to take up the entire screen.
|
|
438
|
-
def window_maximize window_name
|
|
439
|
-
command 'windowMaximize', window_name
|
|
440
|
-
end
|
|
441
|
-
|
|
442
|
-
# Writes a message to the status bar and adds a note to the browser-side log.
|
|
443
|
-
#
|
|
444
|
-
# +context+ is the message sent to the browser.
|
|
445
|
-
#
|
|
446
|
-
# +log_level_threshold+ can be +nil+, <tt>:debug</tt>, <tt>:info</tt>,
|
|
447
|
-
# <tt>:warn</tt> or <tt>:error</tt>.
|
|
448
|
-
def set_context context, log_level_threshold = nil
|
|
449
|
-
if log_level_threshold
|
|
450
|
-
command 'setContext', context, log_level_threshold.to_s
|
|
451
|
-
else
|
|
452
|
-
command 'setContext', context
|
|
453
|
-
end
|
|
454
|
-
end
|
|
455
|
-
|
|
456
|
-
# Runs the specified JavaScript snippet repeatedly until it evaluates to
|
|
457
|
-
# +true+. The snippet may have multiple lines, but only the result of the last
|
|
458
|
-
# line will be considered.
|
|
459
|
-
#
|
|
460
|
-
# Note that, by default, the snippet will be run in the runner's test window,
|
|
461
|
-
# not in the window of your application. To get the window of your
|
|
462
|
-
# application, you can use the JavaScript snippet
|
|
463
|
-
# <tt>selenium.browserbot.getCurrentWindow()</tt>, and then run your
|
|
464
|
-
# JavaScript in there.
|
|
465
|
-
#
|
|
466
|
-
# +timeout+ is specified in milliseconds.
|
|
467
|
-
def wait_for_condition script, timeout
|
|
468
|
-
command 'waitForCondition', script, timeout
|
|
469
|
-
end
|
|
470
|
-
|
|
471
|
-
# Specifies the amount of time that Selenium will wait for actions to
|
|
472
|
-
# complete.
|
|
473
|
-
#
|
|
474
|
-
# Actions that require waiting include +open+ and the <tt>wait_for*</tt>
|
|
475
|
-
# actions.
|
|
476
|
-
#
|
|
477
|
-
# The default timeout is 30 seconds.
|
|
478
|
-
#
|
|
479
|
-
# +timeout+ is specified in milliseconds.
|
|
480
|
-
def set_timeout timeout
|
|
481
|
-
command 'setTimeout', timeout
|
|
482
|
-
end
|
|
483
|
-
|
|
484
|
-
# Waits for a new page to load.
|
|
485
|
-
#
|
|
486
|
-
# You can use this command instead of the +and_wait+ suffixes,
|
|
487
|
-
# +click_and_wait+, +select_and_wait+, +type_and_wait+ etc. (which are only
|
|
488
|
-
# available in the JS API).
|
|
489
|
-
#
|
|
490
|
-
# Selenium constantly keeps track of new pages loading, and sets a
|
|
491
|
-
# +newPageLoaded+ flag when it first notices a page load. Running any other
|
|
492
|
-
# Selenium command after turns the flag to +false+. Hence, if you want to wait
|
|
493
|
-
# for a page to load, you must wait immediately after a Selenium command that
|
|
494
|
-
# caused a page-load.
|
|
495
|
-
#
|
|
496
|
-
# +timeout+ is specified in milliseconds.
|
|
497
|
-
def wait_for_page_to_load timeout
|
|
498
|
-
command 'waitForPageToLoad', timeout
|
|
499
|
-
end
|
|
500
|
-
|
|
501
|
-
private
|
|
502
|
-
# Generates the corresponding +_and_wait+ for each action.
|
|
503
|
-
def self.generate_and_wait_actions
|
|
504
|
-
public_instance_methods.each do |method|
|
|
505
|
-
define_method method + '_and_wait' do |*args|
|
|
506
|
-
methods_array = method.split("_")
|
|
507
|
-
send 'command_and_wait', methods_array.first.downcase + methods_array[1..-1].collect{|part| part.camelize}.join, *args
|
|
508
|
-
end
|
|
509
|
-
end
|
|
510
|
-
end
|
|
511
|
-
|
|
512
|
-
generate_and_wait_actions
|
|
513
|
-
end
|
|
514
|
-
|