metry 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/Manifest.txt +376 -0
- data/README.txt +62 -0
- data/Rakefile +23 -0
- data/TODO +10 -0
- data/example/example.rb +22 -0
- data/features/app_tracking.feature +11 -0
- data/features/basic_tracking.feature +88 -0
- data/features/sample_application.feature +12 -0
- data/features/step_definitions/tracking.rb +35 -0
- data/features/step_definitions/web.rb +31 -0
- data/features/support/env.rb +22 -0
- data/lib/metry.rb +19 -0
- data/lib/metry/experiment.rb +25 -0
- data/lib/metry/memory.rb +27 -0
- data/lib/metry/rack/tracking.rb +51 -0
- data/lib/metry/tokyo.rb +153 -0
- data/radiant/example/CHANGELOG +611 -0
- data/radiant/example/CONTRIBUTORS +168 -0
- data/radiant/example/INSTALL +38 -0
- data/radiant/example/LICENSE +21 -0
- data/radiant/example/README +60 -0
- data/radiant/example/Rakefile +21 -0
- data/radiant/example/config/boot.rb +161 -0
- data/radiant/example/config/database.yml +20 -0
- data/radiant/example/config/environment.rb +83 -0
- data/radiant/example/config/environments/cucumber.rb +18 -0
- data/radiant/example/config/environments/development.rb +17 -0
- data/radiant/example/config/environments/production.rb +19 -0
- data/radiant/example/config/environments/test.rb +36 -0
- data/radiant/example/config/routes.rb +1 -0
- data/radiant/example/db/schema.rb +112 -0
- data/radiant/example/features/metry.feature +139 -0
- data/radiant/example/features/step_definitions/experiments.rb +12 -0
- data/radiant/example/features/step_definitions/radiant.rb +14 -0
- data/radiant/example/features/step_definitions/tracking.rb +35 -0
- data/radiant/example/features/step_definitions/web.rb +22 -0
- data/radiant/example/features/support/env.rb +52 -0
- data/radiant/example/public/.htaccess +40 -0
- data/radiant/example/public/404.html +8 -0
- data/radiant/example/public/500.html +8 -0
- data/radiant/example/public/dispatch.cgi +10 -0
- data/radiant/example/public/dispatch.fcgi +24 -0
- data/radiant/example/public/dispatch.rb +10 -0
- data/radiant/example/public/favicon.ico +0 -0
- data/radiant/example/public/images/admin/add-child.png +0 -0
- data/radiant/example/public/images/admin/brown-bottom-line.gif +0 -0
- data/radiant/example/public/images/admin/clear-page-cache.png +0 -0
- data/radiant/example/public/images/admin/collapse.png +0 -0
- data/radiant/example/public/images/admin/expand.png +0 -0
- data/radiant/example/public/images/admin/layout.png +0 -0
- data/radiant/example/public/images/admin/minus.png +0 -0
- data/radiant/example/public/images/admin/new-homepage.png +0 -0
- data/radiant/example/public/images/admin/new-layout.png +0 -0
- data/radiant/example/public/images/admin/new-snippet.png +0 -0
- data/radiant/example/public/images/admin/new-user.png +0 -0
- data/radiant/example/public/images/admin/page.png +0 -0
- data/radiant/example/public/images/admin/plus.png +0 -0
- data/radiant/example/public/images/admin/remove-disabled.png +0 -0
- data/radiant/example/public/images/admin/remove.png +0 -0
- data/radiant/example/public/images/admin/snippet.png +0 -0
- data/radiant/example/public/images/admin/spinner.gif +0 -0
- data/radiant/example/public/images/admin/view-site.gif +0 -0
- data/radiant/example/public/images/admin/virtual-page.png +0 -0
- data/radiant/example/public/javascripts/admin/admin.js +149 -0
- data/radiant/example/public/javascripts/admin/ruledtable.js +13 -0
- data/radiant/example/public/javascripts/admin/sitemap.js +132 -0
- data/radiant/example/public/javascripts/admin/tabcontrol.js +133 -0
- data/radiant/example/public/javascripts/application.js +2 -0
- data/radiant/example/public/javascripts/controls.js +963 -0
- data/radiant/example/public/javascripts/dragdrop.js +973 -0
- data/radiant/example/public/javascripts/effects.js +1128 -0
- data/radiant/example/public/javascripts/pngfix.js +39 -0
- data/radiant/example/public/javascripts/prototype.js +4320 -0
- data/radiant/example/public/javascripts/string.js +17 -0
- data/radiant/example/public/robots.txt +1 -0
- data/radiant/example/public/stylesheets/admin/main.css +640 -0
- data/radiant/example/script/about +3 -0
- data/radiant/example/script/autospec +5 -0
- data/radiant/example/script/breakpointer +3 -0
- data/radiant/example/script/console +3 -0
- data/radiant/example/script/cucumber +8 -0
- data/radiant/example/script/dbconsole +3 -0
- data/radiant/example/script/extension +5 -0
- data/radiant/example/script/generate +18 -0
- data/radiant/example/script/performance/benchmarker +3 -0
- data/radiant/example/script/performance/profiler +3 -0
- data/radiant/example/script/performance/request +3 -0
- data/radiant/example/script/process/inspector +3 -0
- data/radiant/example/script/process/reaper +3 -0
- data/radiant/example/script/process/spawner +3 -0
- data/radiant/example/script/process/spinner +3 -0
- data/radiant/example/script/runner +3 -0
- data/radiant/example/script/server +3 -0
- data/radiant/example/script/spec +5 -0
- data/radiant/example/script/spec_server +116 -0
- data/radiant/example/script/version +5 -0
- data/radiant/extension/README +3 -0
- data/radiant/extension/Rakefile +120 -0
- data/radiant/extension/lib/metry_tags.rb +25 -0
- data/radiant/extension/lib/tasks/metry_extension_tasks.rake +28 -0
- data/radiant/extension/metry_extension.rb +24 -0
- data/test/shared.rb +6 -0
- data/test/test_tokyo.rb +14 -0
- data/vendor/rufus-tokyo/CHANGELOG.txt +112 -0
- data/vendor/rufus-tokyo/CREDITS.txt +27 -0
- data/vendor/rufus-tokyo/LICENSE.txt +21 -0
- data/vendor/rufus-tokyo/README.txt +310 -0
- data/vendor/rufus-tokyo/Rakefile +118 -0
- data/vendor/rufus-tokyo/TODO.txt +25 -0
- data/vendor/rufus-tokyo/doc/decision_table.numbers +0 -0
- data/vendor/rufus-tokyo/doc/rdoc-style.css +320 -0
- data/vendor/rufus-tokyo/lib/rufus-edo.rb +3 -0
- data/vendor/rufus-tokyo/lib/rufus-tokyo.rb +3 -0
- data/vendor/rufus-tokyo/lib/rufus/edo.rb +39 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/README.txt +106 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/cabcore.rb +333 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/cabinet/abstract.rb +219 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/cabinet/table.rb +159 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/error.rb +36 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant.rb +4 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant/abstract.rb +137 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant/table.rb +141 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/tabcore.rb +567 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo.rb +58 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/abstract.rb +568 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/lib.rb +230 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/table.rb +753 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/util.rb +425 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/config.rb +161 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia.rb +43 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia/lib.rb +65 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia/words.rb +71 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/hmethods.rb +111 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/query.rb +102 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/transactions.rb +74 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/ttcommons.rb +59 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant.rb +35 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/abstract.rb +146 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/lib.rb +153 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/table.rb +162 -0
- data/vendor/rufus-tokyo/rufus-tokyo.gemspec +25 -0
- data/vendor/rufus-tokyo/spec/cabinet_spec.rb +472 -0
- data/vendor/rufus-tokyo/spec/cabinetconfig_spec.rb +82 -0
- data/vendor/rufus-tokyo/spec/edo_cabinet_spec.rb +447 -0
- data/vendor/rufus-tokyo/spec/edo_ntyrant_spec.rb +299 -0
- data/vendor/rufus-tokyo/spec/edo_ntyrant_table_spec.rb +462 -0
- data/vendor/rufus-tokyo/spec/edo_table_spec.rb +560 -0
- data/vendor/rufus-tokyo/spec/hmethods_spec.rb +44 -0
- data/vendor/rufus-tokyo/spec/incr.lua +20 -0
- data/vendor/rufus-tokyo/spec/spec.rb +9 -0
- data/vendor/rufus-tokyo/spec/spec_base.rb +23 -0
- data/vendor/rufus-tokyo/spec/start_tyrants.sh +26 -0
- data/vendor/rufus-tokyo/spec/stop_tyrants.sh +9 -0
- data/vendor/rufus-tokyo/spec/table_spec.rb +567 -0
- data/vendor/rufus-tokyo/spec/tyrant_spec.rb +309 -0
- data/vendor/rufus-tokyo/spec/tyrant_table_spec.rb +479 -0
- data/vendor/rufus-tokyo/spec/util_list_spec.rb +200 -0
- data/vendor/rufus-tokyo/spec/util_map_spec.rb +132 -0
- data/vendor/rufus-tokyo/tasks/dev.rb +70 -0
- data/vendor/rufus-tokyo/test/bm0.rb +353 -0
- data/vendor/rufus-tokyo/test/bm1_compression.rb +54 -0
- data/vendor/rufus-tokyo/test/con0.rb +30 -0
- data/vendor/rufus-tokyo/test/mem.rb +49 -0
- data/vendor/rufus-tokyo/test/mem1.rb +44 -0
- data/vendor/rufus-tokyo/test/readme0.rb +17 -0
- data/vendor/rufus-tokyo/test/readme1.rb +21 -0
- data/vendor/rufus-tokyo/test/readme2.rb +15 -0
- data/vendor/rufus-tokyo/test/readme3.rb +24 -0
- data/vendor/rufus-tokyo/test/readmes_test.sh +17 -0
- data/vendor/webrat/.document +4 -0
- data/vendor/webrat/History.txt +358 -0
- data/vendor/webrat/MIT-LICENSE.txt +19 -0
- data/vendor/webrat/README.rdoc +85 -0
- data/vendor/webrat/Rakefile +200 -0
- data/vendor/webrat/install.rb +1 -0
- data/vendor/webrat/lib/webrat.rb +31 -0
- data/vendor/webrat/lib/webrat/core.rb +14 -0
- data/vendor/webrat/lib/webrat/core/configuration.rb +102 -0
- data/vendor/webrat/lib/webrat/core/elements/area.rb +31 -0
- data/vendor/webrat/lib/webrat/core/elements/element.rb +33 -0
- data/vendor/webrat/lib/webrat/core/elements/field.rb +411 -0
- data/vendor/webrat/lib/webrat/core/elements/form.rb +103 -0
- data/vendor/webrat/lib/webrat/core/elements/label.rb +31 -0
- data/vendor/webrat/lib/webrat/core/elements/link.rb +93 -0
- data/vendor/webrat/lib/webrat/core/elements/select_option.rb +35 -0
- data/vendor/webrat/lib/webrat/core/locators.rb +20 -0
- data/vendor/webrat/lib/webrat/core/locators/area_locator.rb +38 -0
- data/vendor/webrat/lib/webrat/core/locators/button_locator.rb +54 -0
- data/vendor/webrat/lib/webrat/core/locators/field_by_id_locator.rb +37 -0
- data/vendor/webrat/lib/webrat/core/locators/field_labeled_locator.rb +56 -0
- data/vendor/webrat/lib/webrat/core/locators/field_locator.rb +25 -0
- data/vendor/webrat/lib/webrat/core/locators/field_named_locator.rb +41 -0
- data/vendor/webrat/lib/webrat/core/locators/form_locator.rb +19 -0
- data/vendor/webrat/lib/webrat/core/locators/label_locator.rb +34 -0
- data/vendor/webrat/lib/webrat/core/locators/link_locator.rb +74 -0
- data/vendor/webrat/lib/webrat/core/locators/locator.rb +20 -0
- data/vendor/webrat/lib/webrat/core/locators/select_option_locator.rb +59 -0
- data/vendor/webrat/lib/webrat/core/logging.rb +24 -0
- data/vendor/webrat/lib/webrat/core/matchers.rb +4 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_content.rb +73 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_selector.rb +74 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_tag.rb +21 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_xpath.rb +147 -0
- data/vendor/webrat/lib/webrat/core/methods.rb +63 -0
- data/vendor/webrat/lib/webrat/core/mime.rb +29 -0
- data/vendor/webrat/lib/webrat/core/save_and_open_page.rb +48 -0
- data/vendor/webrat/lib/webrat/core/scope.rb +350 -0
- data/vendor/webrat/lib/webrat/core/session.rb +290 -0
- data/vendor/webrat/lib/webrat/core/xml.rb +115 -0
- data/vendor/webrat/lib/webrat/core/xml/hpricot.rb +19 -0
- data/vendor/webrat/lib/webrat/core/xml/nokogiri.rb +76 -0
- data/vendor/webrat/lib/webrat/core/xml/rexml.rb +24 -0
- data/vendor/webrat/lib/webrat/core_extensions/blank.rb +58 -0
- data/vendor/webrat/lib/webrat/core_extensions/deprecate.rb +8 -0
- data/vendor/webrat/lib/webrat/core_extensions/detect_mapped.rb +12 -0
- data/vendor/webrat/lib/webrat/core_extensions/meta_class.rb +6 -0
- data/vendor/webrat/lib/webrat/core_extensions/nil_to_param.rb +5 -0
- data/vendor/webrat/lib/webrat/core_extensions/tcp_socket.rb +27 -0
- data/vendor/webrat/lib/webrat/mechanize.rb +74 -0
- data/vendor/webrat/lib/webrat/merb.rb +9 -0
- data/vendor/webrat/lib/webrat/merb_multipart_support.rb +27 -0
- data/vendor/webrat/lib/webrat/merb_session.rb +80 -0
- data/vendor/webrat/lib/webrat/rack.rb +24 -0
- data/vendor/webrat/lib/webrat/rack_test.rb +32 -0
- data/vendor/webrat/lib/webrat/rails.rb +105 -0
- data/vendor/webrat/lib/webrat/rspec-rails.rb +10 -0
- data/vendor/webrat/lib/webrat/selenium.rb +81 -0
- data/vendor/webrat/lib/webrat/selenium/application_server_factory.rb +40 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers.rb +5 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers/base.rb +46 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers/external.rb +26 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers/merb.rb +50 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers/rails.rb +44 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers/sinatra.rb +37 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/button.js +19 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/label.js +16 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webrat.js +5 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratlink.js +12 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +15 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +5 -0
- data/vendor/webrat/lib/webrat/selenium/matchers.rb +4 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_content.rb +66 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_selector.rb +49 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_tag.rb +72 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_xpath.rb +45 -0
- data/vendor/webrat/lib/webrat/selenium/selenium_extensions.js +6 -0
- data/vendor/webrat/lib/webrat/selenium/selenium_rc_server.rb +84 -0
- data/vendor/webrat/lib/webrat/selenium/selenium_session.rb +248 -0
- data/vendor/webrat/lib/webrat/selenium/silence_stream.rb +18 -0
- data/vendor/webrat/lib/webrat/sinatra.rb +44 -0
- data/vendor/webrat/spec/fakes/test_session.rb +34 -0
- data/vendor/webrat/spec/integration/merb/Rakefile +35 -0
- data/vendor/webrat/spec/integration/merb/app/controllers/application.rb +2 -0
- data/vendor/webrat/spec/integration/merb/app/controllers/exceptions.rb +13 -0
- data/vendor/webrat/spec/integration/merb/app/controllers/testing.rb +27 -0
- data/vendor/webrat/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +63 -0
- data/vendor/webrat/spec/integration/merb/app/views/exceptions/not_found.html.erb +47 -0
- data/vendor/webrat/spec/integration/merb/app/views/layout/application.html.erb +12 -0
- data/vendor/webrat/spec/integration/merb/app/views/testing/show_form.html.erb +27 -0
- data/vendor/webrat/spec/integration/merb/app/views/testing/upload.html.erb +9 -0
- data/vendor/webrat/spec/integration/merb/config/environments/development.rb +15 -0
- data/vendor/webrat/spec/integration/merb/config/environments/rake.rb +11 -0
- data/vendor/webrat/spec/integration/merb/config/environments/test.rb +14 -0
- data/vendor/webrat/spec/integration/merb/config/init.rb +25 -0
- data/vendor/webrat/spec/integration/merb/config/rack.rb +11 -0
- data/vendor/webrat/spec/integration/merb/config/router.rb +34 -0
- data/vendor/webrat/spec/integration/merb/spec/spec.opts +1 -0
- data/vendor/webrat/spec/integration/merb/spec/spec_helper.rb +24 -0
- data/vendor/webrat/spec/integration/merb/spec/webrat_spec.rb +39 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/app_script.rb +31 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/common.rb +64 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/gem_ext.rb +124 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/main.thor +150 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/ops.rb +93 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/utils.rb +40 -0
- data/vendor/webrat/spec/integration/rack/Rakefile +5 -0
- data/vendor/webrat/spec/integration/rack/rack_app.rb +16 -0
- data/vendor/webrat/spec/integration/rack/test/test_helper.rb +20 -0
- data/vendor/webrat/spec/integration/rack/test/webrat_rack_test.rb +67 -0
- data/vendor/webrat/spec/integration/rails/Rakefile +30 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/application.rb +15 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/buttons_controller.rb +7 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/fields_controller.rb +4 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/links_controller.rb +7 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/webrat_controller.rb +43 -0
- data/vendor/webrat/spec/integration/rails/app/helpers/buttons_helper.rb +2 -0
- data/vendor/webrat/spec/integration/rails/app/helpers/fields_helper.rb +2 -0
- data/vendor/webrat/spec/integration/rails/app/helpers/links_helper.rb +2 -0
- data/vendor/webrat/spec/integration/rails/app/views/buttons/show.html.erb +11 -0
- data/vendor/webrat/spec/integration/rails/app/views/fields/show.html.erb +9 -0
- data/vendor/webrat/spec/integration/rails/app/views/links/show.html.erb +5 -0
- data/vendor/webrat/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +4 -0
- data/vendor/webrat/spec/integration/rails/app/views/webrat/buttons.html.erb +11 -0
- data/vendor/webrat/spec/integration/rails/app/views/webrat/form.html.erb +28 -0
- data/vendor/webrat/spec/integration/rails/config/boot.rb +109 -0
- data/vendor/webrat/spec/integration/rails/config/environment.rb +12 -0
- data/vendor/webrat/spec/integration/rails/config/environments/development.rb +17 -0
- data/vendor/webrat/spec/integration/rails/config/environments/selenium.rb +22 -0
- data/vendor/webrat/spec/integration/rails/config/environments/test.rb +22 -0
- data/vendor/webrat/spec/integration/rails/config/initializers/inflections.rb +10 -0
- data/vendor/webrat/spec/integration/rails/config/initializers/mime_types.rb +5 -0
- data/vendor/webrat/spec/integration/rails/config/initializers/new_rails_defaults.rb +17 -0
- data/vendor/webrat/spec/integration/rails/config/locales/en.yml +5 -0
- data/vendor/webrat/spec/integration/rails/config/routes.rb +18 -0
- data/vendor/webrat/spec/integration/rails/public/404.html +30 -0
- data/vendor/webrat/spec/integration/rails/public/422.html +30 -0
- data/vendor/webrat/spec/integration/rails/public/500.html +33 -0
- data/vendor/webrat/spec/integration/rails/script/about +4 -0
- data/vendor/webrat/spec/integration/rails/script/console +3 -0
- data/vendor/webrat/spec/integration/rails/script/dbconsole +3 -0
- data/vendor/webrat/spec/integration/rails/script/destroy +3 -0
- data/vendor/webrat/spec/integration/rails/script/generate +3 -0
- data/vendor/webrat/spec/integration/rails/script/performance/benchmarker +3 -0
- data/vendor/webrat/spec/integration/rails/script/performance/profiler +3 -0
- data/vendor/webrat/spec/integration/rails/script/performance/request +3 -0
- data/vendor/webrat/spec/integration/rails/script/plugin +3 -0
- data/vendor/webrat/spec/integration/rails/script/process/inspector +3 -0
- data/vendor/webrat/spec/integration/rails/script/process/reaper +3 -0
- data/vendor/webrat/spec/integration/rails/script/process/spawner +3 -0
- data/vendor/webrat/spec/integration/rails/script/runner +3 -0
- data/vendor/webrat/spec/integration/rails/script/server +3 -0
- data/vendor/webrat/spec/integration/rails/test/integration/button_click_test.rb +80 -0
- data/vendor/webrat/spec/integration/rails/test/integration/fill_in_test.rb +24 -0
- data/vendor/webrat/spec/integration/rails/test/integration/link_click_test.rb +27 -0
- data/vendor/webrat/spec/integration/rails/test/integration/webrat_test.rb +97 -0
- data/vendor/webrat/spec/integration/rails/test/test_helper.rb +25 -0
- data/vendor/webrat/spec/integration/sinatra/Rakefile +5 -0
- data/vendor/webrat/spec/integration/sinatra/classic_app.rb +64 -0
- data/vendor/webrat/spec/integration/sinatra/modular_app.rb +16 -0
- data/vendor/webrat/spec/integration/sinatra/test/classic_app_test.rb +37 -0
- data/vendor/webrat/spec/integration/sinatra/test/modular_app_test.rb +18 -0
- data/vendor/webrat/spec/integration/sinatra/test/test_helper.rb +16 -0
- data/vendor/webrat/spec/private/core/configuration_spec.rb +116 -0
- data/vendor/webrat/spec/private/core/field_spec.rb +85 -0
- data/vendor/webrat/spec/private/core/link_spec.rb +24 -0
- data/vendor/webrat/spec/private/core/logging_spec.rb +10 -0
- data/vendor/webrat/spec/private/core/session_spec.rb +195 -0
- data/vendor/webrat/spec/private/mechanize/mechanize_session_spec.rb +81 -0
- data/vendor/webrat/spec/private/merb/attaches_file_spec.rb +93 -0
- data/vendor/webrat/spec/private/merb/merb_session_spec.rb +61 -0
- data/vendor/webrat/spec/private/nokogiri_spec.rb +77 -0
- data/vendor/webrat/spec/private/rails/attaches_file_spec.rb +81 -0
- data/vendor/webrat/spec/private/rails/rails_session_spec.rb +110 -0
- data/vendor/webrat/spec/private/selenium/application_servers/rails_spec.rb +26 -0
- data/vendor/webrat/spec/public/basic_auth_spec.rb +24 -0
- data/vendor/webrat/spec/public/check_spec.rb +191 -0
- data/vendor/webrat/spec/public/choose_spec.rb +118 -0
- data/vendor/webrat/spec/public/click_area_spec.rb +106 -0
- data/vendor/webrat/spec/public/click_button_spec.rb +496 -0
- data/vendor/webrat/spec/public/click_link_spec.rb +511 -0
- data/vendor/webrat/spec/public/fill_in_spec.rb +209 -0
- data/vendor/webrat/spec/public/locators/field_by_xpath_spec.rb +19 -0
- data/vendor/webrat/spec/public/locators/field_labeled_spec.rb +172 -0
- data/vendor/webrat/spec/public/locators/field_with_id_spec.rb +16 -0
- data/vendor/webrat/spec/public/matchers/contain_spec.rb +114 -0
- data/vendor/webrat/spec/public/matchers/have_selector_spec.rb +142 -0
- data/vendor/webrat/spec/public/matchers/have_tag_spec.rb +39 -0
- data/vendor/webrat/spec/public/matchers/have_xpath_spec.rb +136 -0
- data/vendor/webrat/spec/public/reload_spec.rb +10 -0
- data/vendor/webrat/spec/public/save_and_open_spec.rb +70 -0
- data/vendor/webrat/spec/public/select_date_spec.rb +112 -0
- data/vendor/webrat/spec/public/select_datetime_spec.rb +137 -0
- data/vendor/webrat/spec/public/select_spec.rb +249 -0
- data/vendor/webrat/spec/public/select_time_spec.rb +100 -0
- data/vendor/webrat/spec/public/selenium/application_server_factory_spec.rb +49 -0
- data/vendor/webrat/spec/public/selenium/application_servers/external_spec.rb +12 -0
- data/vendor/webrat/spec/public/selenium/selenium_session_spec.rb +37 -0
- data/vendor/webrat/spec/public/set_hidden_field_spec.rb +5 -0
- data/vendor/webrat/spec/public/submit_form_spec.rb +5 -0
- data/vendor/webrat/spec/public/visit_spec.rb +58 -0
- data/vendor/webrat/spec/public/within_spec.rb +177 -0
- data/vendor/webrat/spec/rcov.opts +1 -0
- data/vendor/webrat/spec/spec.opts +2 -0
- data/vendor/webrat/spec/spec_helper.rb +50 -0
- data/vendor/webrat/vendor/selenium-server.jar +0 -0
- metadata +442 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
# SQLite version 3.x
|
2
|
+
# gem install sqlite3-ruby
|
3
|
+
development:
|
4
|
+
adapter: sqlite3
|
5
|
+
database: db/development.sqlite3.db
|
6
|
+
|
7
|
+
# Warning: The database defined as 'test' will be erased and
|
8
|
+
# re-generated from your development database when you run 'rake'.
|
9
|
+
# Do not set this db to the same as development or production.
|
10
|
+
test:
|
11
|
+
adapter: sqlite3
|
12
|
+
database: db/test.sqlite3.db
|
13
|
+
|
14
|
+
cucumber:
|
15
|
+
adapter: sqlite3
|
16
|
+
database: db/test.sqlite3.db
|
17
|
+
|
18
|
+
production:
|
19
|
+
adapter: sqlite3
|
20
|
+
database: db/production.sqlite3.db
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file
|
2
|
+
|
3
|
+
# Uncomment below to force Rails into production mode when
|
4
|
+
# you don't control web/app server and can't set it the proper way
|
5
|
+
# ENV['RAILS_ENV'] ||= 'production'
|
6
|
+
|
7
|
+
# Specifies gem version of Rails to use when vendor/rails is not present
|
8
|
+
require File.join(File.dirname(__FILE__), 'boot')
|
9
|
+
|
10
|
+
require 'radius'
|
11
|
+
|
12
|
+
Radiant::Initializer.run do |config|
|
13
|
+
# Skip frameworks you're not going to use (only works if using vendor/rails).
|
14
|
+
# To use Rails without a database, you must remove the Active Record framework
|
15
|
+
config.frameworks -= [ :action_mailer ]
|
16
|
+
|
17
|
+
# Only load the extensions named here, in the order given. By default all
|
18
|
+
# extensions in vendor/extensions are loaded, in alphabetical order. :all
|
19
|
+
# can be used as a placeholder for all extensions not explicitly named.
|
20
|
+
# config.extensions = [ :all ]
|
21
|
+
|
22
|
+
# Your secret key for verifying cookie session data integrity.
|
23
|
+
# If you change this key, all old sessions will become invalid!
|
24
|
+
# Make sure the secret is at least 30 characters and all random,
|
25
|
+
# no regular words or you'll be exposed to dictionary attacks.
|
26
|
+
config.action_controller.session = {
|
27
|
+
:session_key => '_radiant_session',
|
28
|
+
:secret => '1f9ce57d47cafc63b3fce6acc136bd8aa886a3ab'
|
29
|
+
}
|
30
|
+
|
31
|
+
# Comment out this line if you want to turn off all caching, or
|
32
|
+
# add options to modify the behavior. In the majority of deployment
|
33
|
+
# scenarios it is desirable to leave Radiant's cache enabled and in
|
34
|
+
# the default configuration.
|
35
|
+
#
|
36
|
+
# Additional options:
|
37
|
+
# :use_x_sendfile => true
|
38
|
+
# Turns on X-Sendfile support for Apache with mod_xsendfile or lighttpd.
|
39
|
+
# :use_x_accel_redirect => '/some/virtual/path'
|
40
|
+
# Turns on X-Accel-Redirect support for nginx. You have to provide
|
41
|
+
# a path that corresponds to a virtual location in your webserver
|
42
|
+
# configuration.
|
43
|
+
# :entitystore => "radiant:cache/entity"
|
44
|
+
# Sets the entity store type (preceding the colon) and storage
|
45
|
+
# location (following the colon, relative to Rails.root).
|
46
|
+
# We recommend you use radiant: since this will enable manual expiration.
|
47
|
+
# :metastore => "radiant:cache/meta"
|
48
|
+
# Sets the meta store type and storage location. We recommend you use
|
49
|
+
# radiant: since this will enable manual expiration and acceleration headers.
|
50
|
+
config.middleware.use ::Radiant::Cache
|
51
|
+
|
52
|
+
# Use the database for sessions instead of the cookie-based default,
|
53
|
+
# which shouldn't be used to store highly confidential information
|
54
|
+
# (create the session table with 'rake db:sessions:create')
|
55
|
+
config.action_controller.session_store = :cookie_store
|
56
|
+
|
57
|
+
# Activate observers that should always be running
|
58
|
+
config.active_record.observers = :user_action_observer
|
59
|
+
|
60
|
+
# Make Active Record use UTC-base instead of local time
|
61
|
+
config.active_record.default_timezone = :utc
|
62
|
+
|
63
|
+
# Set the default field error proc
|
64
|
+
config.action_view.field_error_proc = Proc.new do |html, instance|
|
65
|
+
if html !~ /label/
|
66
|
+
%{<div class="error-with-field">#{html} <small class="error">• #{[instance.error_message].flatten.first}</small></div>}
|
67
|
+
else
|
68
|
+
html
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
config.after_initialize do
|
73
|
+
# Add new inflection rules using the following format:
|
74
|
+
ActiveSupport::Inflector.inflections do |inflect|
|
75
|
+
inflect.uncountable 'config'
|
76
|
+
end
|
77
|
+
|
78
|
+
require RAILS_ROOT + '/../../lib/metry'
|
79
|
+
Metry.init Metry::Tokyo.new(RAILS_ROOT + '/tracking/tracking')
|
80
|
+
|
81
|
+
config.middleware.insert_after ActionController::Failsafe, Metry::Rack::Tracking
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
config.cache_classes = true # This must be true for Cucumber to operate correctly!
|
2
|
+
|
3
|
+
# Log error messages when you accidentally call methods on nil.
|
4
|
+
config.whiny_nils = true
|
5
|
+
|
6
|
+
# Show full error reports and disable caching
|
7
|
+
config.action_controller.consider_all_requests_local = true
|
8
|
+
config.action_controller.perform_caching = false
|
9
|
+
|
10
|
+
# Disable request forgery protection in test environment
|
11
|
+
config.action_controller.allow_forgery_protection = false
|
12
|
+
|
13
|
+
# Tell Action Mailer not to deliver emails to the real world.
|
14
|
+
# The :test delivery method accumulates sent emails in the
|
15
|
+
# ActionMailer::Base.deliveries array.
|
16
|
+
config.action_mailer.delivery_method = :test
|
17
|
+
|
18
|
+
require 'pp'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Settings specified here will take precedence over those in config/environment.rb
|
2
|
+
|
3
|
+
# In the development environment your application's code is reloaded on
|
4
|
+
# every request. This slows down response time but is perfect for development
|
5
|
+
# since you don't have to restart the webserver when you make code changes.
|
6
|
+
config.cache_classes = false
|
7
|
+
|
8
|
+
# Log error messages when you accidentally call methods on nil.
|
9
|
+
config.whiny_nils = true
|
10
|
+
|
11
|
+
# Show full error reports and caching is turned off
|
12
|
+
config.action_controller.consider_all_requests_local = true
|
13
|
+
config.action_view.debug_rjs = true
|
14
|
+
config.action_controller.perform_caching = false
|
15
|
+
|
16
|
+
# Don't care if the mailer can't send
|
17
|
+
config.action_mailer.raise_delivery_errors = false
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# Settings specified here will take precedence over those in config/environment.rb
|
2
|
+
|
3
|
+
# The production environment is meant for finished, "live" apps.
|
4
|
+
# Code is not reloaded between requests
|
5
|
+
config.cache_classes = true
|
6
|
+
|
7
|
+
# Use a different logger for distributed setups
|
8
|
+
# config.logger = SyslogLogger.new
|
9
|
+
|
10
|
+
|
11
|
+
# Full error reports are disabled and caching is on
|
12
|
+
config.action_controller.consider_all_requests_local = false
|
13
|
+
config.action_controller.perform_caching = true
|
14
|
+
|
15
|
+
# Enable serving of images, stylesheets, and javascripts from an asset server
|
16
|
+
# config.action_controller.asset_host = "http://assets.example.com"
|
17
|
+
|
18
|
+
# Disable delivery errors if you bad email addresses should just be ignored
|
19
|
+
# config.action_mailer.raise_delivery_errors = false
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Settings specified here will take precedence over those in config/environment.rb
|
2
|
+
|
3
|
+
# The test environment is used exclusively to run your application's
|
4
|
+
# test suite. You never need to work with it otherwise. Remember that
|
5
|
+
# your test database is "scratch space" for the test suite and is wiped
|
6
|
+
# and recreated between test runs. Don't rely on the data there!
|
7
|
+
config.cache_classes = true
|
8
|
+
|
9
|
+
# ensure test extensions are loaded
|
10
|
+
# test_extension_dir = File.join(File.expand_path(RADIANT_ROOT), 'test', 'fixtures', 'extensions')
|
11
|
+
# config.extension_paths.unshift test_extension_dir
|
12
|
+
# config.extension_paths.uniq!
|
13
|
+
# if !config.extensions.include?(:all)
|
14
|
+
# config.extensions.concat(Dir["#{test_extension_dir}/*"].sort.map {|x| File.basename(x).sub(/^\d+_/,'')})
|
15
|
+
# config.extensions.uniq!
|
16
|
+
# end
|
17
|
+
|
18
|
+
# Log error messages when you accidentally call methods on nil.
|
19
|
+
config.whiny_nils = true
|
20
|
+
|
21
|
+
# Show full error reports and disable caching
|
22
|
+
config.action_controller.consider_all_requests_local = true
|
23
|
+
config.action_controller.perform_caching = false
|
24
|
+
|
25
|
+
# Disable request forgery protection in test environment
|
26
|
+
config.action_controller.allow_forgery_protection = false
|
27
|
+
|
28
|
+
# Tell ActionMailer not to deliver emails to the real world.
|
29
|
+
# The :test delivery method accumulates sent emails in the
|
30
|
+
# ActionMailer::Base.deliveries array.
|
31
|
+
config.action_mailer.delivery_method = :test
|
32
|
+
|
33
|
+
config.gem "rspec", :version => "1.2.6", :lib => false
|
34
|
+
config.gem "rspec-rails", :version => "1.2.6", :lib => false
|
35
|
+
config.gem "webrat", :version => "~>0.4.4", :lib => false
|
36
|
+
config.gem "cucumber", :version => "~>0.3.9", :lib => false
|
@@ -0,0 +1 @@
|
|
1
|
+
load File.join(RADIANT_ROOT, "config", "routes.rb")
|
@@ -0,0 +1,112 @@
|
|
1
|
+
# This file is auto-generated from the current state of the database. Instead of editing this file,
|
2
|
+
# please use the migrations feature of Active Record to incrementally modify your database, and
|
3
|
+
# then regenerate this schema definition.
|
4
|
+
#
|
5
|
+
# Note that this schema.rb definition is the authoritative source for your database schema. If you need
|
6
|
+
# to create the application database on another system, you should be using db:schema:load, not running
|
7
|
+
# all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
8
|
+
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
9
|
+
#
|
10
|
+
# It's strongly recommended to check this file into your version control system.
|
11
|
+
|
12
|
+
ActiveRecord::Schema.define(:version => 20081203140407) do
|
13
|
+
|
14
|
+
create_table "config", :force => true do |t|
|
15
|
+
t.string "key", :limit => 40, :default => "", :null => false
|
16
|
+
t.string "value", :default => ""
|
17
|
+
end
|
18
|
+
|
19
|
+
add_index "config", ["key"], :name => "key", :unique => true
|
20
|
+
|
21
|
+
create_table "extension_meta", :force => true do |t|
|
22
|
+
t.string "name"
|
23
|
+
t.integer "schema_version", :default => 0
|
24
|
+
t.boolean "enabled", :default => true
|
25
|
+
end
|
26
|
+
|
27
|
+
create_table "layouts", :force => true do |t|
|
28
|
+
t.string "name", :limit => 100
|
29
|
+
t.text "content"
|
30
|
+
t.datetime "created_at"
|
31
|
+
t.datetime "updated_at"
|
32
|
+
t.integer "created_by_id"
|
33
|
+
t.integer "updated_by_id"
|
34
|
+
t.string "content_type", :limit => 40
|
35
|
+
t.integer "lock_version", :default => 0
|
36
|
+
end
|
37
|
+
|
38
|
+
create_table "page_parts", :force => true do |t|
|
39
|
+
t.string "name", :limit => 100
|
40
|
+
t.string "filter_id", :limit => 25
|
41
|
+
t.text "content"
|
42
|
+
t.integer "page_id"
|
43
|
+
end
|
44
|
+
|
45
|
+
add_index "page_parts", ["page_id", "name"], :name => "parts_by_page"
|
46
|
+
|
47
|
+
create_table "pages", :force => true do |t|
|
48
|
+
t.string "title"
|
49
|
+
t.string "slug", :limit => 100
|
50
|
+
t.string "breadcrumb", :limit => 160
|
51
|
+
t.string "class_name", :limit => 25
|
52
|
+
t.integer "status_id", :default => 1, :null => false
|
53
|
+
t.integer "parent_id"
|
54
|
+
t.integer "layout_id"
|
55
|
+
t.datetime "created_at"
|
56
|
+
t.datetime "updated_at"
|
57
|
+
t.datetime "published_at"
|
58
|
+
t.integer "created_by_id"
|
59
|
+
t.integer "updated_by_id"
|
60
|
+
t.boolean "virtual", :default => false, :null => false
|
61
|
+
t.integer "lock_version", :default => 0
|
62
|
+
t.string "description"
|
63
|
+
t.string "keywords"
|
64
|
+
end
|
65
|
+
|
66
|
+
add_index "pages", ["class_name"], :name => "pages_class_name"
|
67
|
+
add_index "pages", ["parent_id"], :name => "pages_parent_id"
|
68
|
+
add_index "pages", ["slug", "parent_id"], :name => "pages_child_slug"
|
69
|
+
add_index "pages", ["virtual", "status_id"], :name => "pages_published"
|
70
|
+
|
71
|
+
create_table "sessions", :force => true do |t|
|
72
|
+
t.string "session_id"
|
73
|
+
t.text "data"
|
74
|
+
t.datetime "updated_at"
|
75
|
+
end
|
76
|
+
|
77
|
+
add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
|
78
|
+
add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at"
|
79
|
+
|
80
|
+
create_table "snippets", :force => true do |t|
|
81
|
+
t.string "name", :limit => 100, :default => "", :null => false
|
82
|
+
t.string "filter_id", :limit => 25
|
83
|
+
t.text "content"
|
84
|
+
t.datetime "created_at"
|
85
|
+
t.datetime "updated_at"
|
86
|
+
t.integer "created_by_id"
|
87
|
+
t.integer "updated_by_id"
|
88
|
+
t.integer "lock_version", :default => 0
|
89
|
+
end
|
90
|
+
|
91
|
+
add_index "snippets", ["name"], :name => "name", :unique => true
|
92
|
+
|
93
|
+
create_table "users", :force => true do |t|
|
94
|
+
t.string "name", :limit => 100
|
95
|
+
t.string "email"
|
96
|
+
t.string "login", :limit => 40, :default => "", :null => false
|
97
|
+
t.string "password", :limit => 40
|
98
|
+
t.datetime "created_at"
|
99
|
+
t.datetime "updated_at"
|
100
|
+
t.integer "created_by_id"
|
101
|
+
t.integer "updated_by_id"
|
102
|
+
t.boolean "admin", :default => false, :null => false
|
103
|
+
t.boolean "developer", :default => false, :null => false
|
104
|
+
t.text "notes"
|
105
|
+
t.integer "lock_version", :default => 0
|
106
|
+
t.string "salt"
|
107
|
+
t.string "session_token"
|
108
|
+
end
|
109
|
+
|
110
|
+
add_index "users", ["login"], :name => "login", :unique => true
|
111
|
+
|
112
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
Feature: Radiant support
|
2
|
+
In order to get metrics and run experiments on my Radiant applications
|
3
|
+
As a Radiant administrator
|
4
|
+
I want to have a Radiant extension that gives me Metry support
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given an empty tracking database
|
8
|
+
And I am a new visitor
|
9
|
+
And I have a layout
|
10
|
+
And there is an empty Radiant cache
|
11
|
+
|
12
|
+
Scenario: Basic Tracking
|
13
|
+
Given a page at "/" containing:
|
14
|
+
"""
|
15
|
+
Hello!
|
16
|
+
"""
|
17
|
+
When I view "/"
|
18
|
+
Then I should see "Hello!"
|
19
|
+
And there should be 1 tracking event
|
20
|
+
|
21
|
+
Scenario: Caching shouldn't interfere with tracking
|
22
|
+
Given a page at "/" containing:
|
23
|
+
"""
|
24
|
+
Hello!
|
25
|
+
"""
|
26
|
+
When I view "/"
|
27
|
+
And I view "/"
|
28
|
+
Then there should be 2 tracking events
|
29
|
+
|
30
|
+
Scenario: Running an experiment
|
31
|
+
Given a page at "/" containing:
|
32
|
+
"""
|
33
|
+
<r:metry:experiment name="header" method="mod_visitor">
|
34
|
+
Hello!
|
35
|
+
<r:alternative name="grumpy">
|
36
|
+
Go away!
|
37
|
+
</r:alternative>
|
38
|
+
<r:alternative name="dopey">
|
39
|
+
Duh?
|
40
|
+
</r:alternative>
|
41
|
+
</r:metry:experiment>
|
42
|
+
"""
|
43
|
+
When I view "/"
|
44
|
+
Then I should see "Hello!"
|
45
|
+
When I am a new visitor
|
46
|
+
And there is an empty Radiant cache
|
47
|
+
And I view "/"
|
48
|
+
Then I should see "Go away!"
|
49
|
+
When I am a new visitor
|
50
|
+
And there is an empty Radiant cache
|
51
|
+
And I view "/"
|
52
|
+
Then I should see "Duh?"
|
53
|
+
Then there should be a tracking event "1":
|
54
|
+
| key | value |
|
55
|
+
| visitor | 1 |
|
56
|
+
| experiment.header | control |
|
57
|
+
Then there should be a tracking event "2":
|
58
|
+
| key | value |
|
59
|
+
| visitor | 2 |
|
60
|
+
| experiment.header | grumpy |
|
61
|
+
Then there should be a tracking event "3":
|
62
|
+
| key | value |
|
63
|
+
| visitor | 3 |
|
64
|
+
| experiment.header | dopey |
|
65
|
+
Then there should be a visitor "1":
|
66
|
+
| key | value |
|
67
|
+
| experiment.header | control |
|
68
|
+
Then there should be a visitor "2":
|
69
|
+
| key | value |
|
70
|
+
| experiment.header | grumpy |
|
71
|
+
Then there should be a visitor "3":
|
72
|
+
| key | value |
|
73
|
+
| experiment.header | dopey |
|
74
|
+
|
75
|
+
Scenario: Multiple access by same visitor should give same result
|
76
|
+
Given a page at "/" containing:
|
77
|
+
"""
|
78
|
+
<r:metry:experiment name="switch" method="rand">
|
79
|
+
One
|
80
|
+
<r:alternative name="two">
|
81
|
+
Two
|
82
|
+
</r:alternative>
|
83
|
+
</r:metry:experiment>
|
84
|
+
"""
|
85
|
+
When I view "/" 10 times
|
86
|
+
Then I should see the same "switch" alternative 10 times
|
87
|
+
When I am a new visitor
|
88
|
+
And I view "/" 10 times
|
89
|
+
Then I should see the same "switch" alternative 10 times
|
90
|
+
When I am a new visitor
|
91
|
+
And I view "/" 10 times
|
92
|
+
Then I should see the same "switch" alternative 10 times
|
93
|
+
When I am a new visitor
|
94
|
+
And I view "/" 10 times
|
95
|
+
Then I should see the same "switch" alternative 10 times
|
96
|
+
|
97
|
+
Scenario: Caching shouldn't interfere with experiments
|
98
|
+
Given a page at "/" containing:
|
99
|
+
"""
|
100
|
+
<r:metry:experiment name="cached" method="mod_visitor">
|
101
|
+
Sweet
|
102
|
+
<r:alternative name="two">
|
103
|
+
Sour
|
104
|
+
</r:alternative>
|
105
|
+
</r:metry:experiment>
|
106
|
+
"""
|
107
|
+
When I view "/" 2 times
|
108
|
+
Then there should be a tracking event "1":
|
109
|
+
| key | value |
|
110
|
+
| experiment.cached | control |
|
111
|
+
Then there should be a tracking event "2":
|
112
|
+
| key | value |
|
113
|
+
| experiment.cached | control |
|
114
|
+
|
115
|
+
Scenario: rand method should give reasonable experiment distribution
|
116
|
+
Given a page at "/" containing:
|
117
|
+
"""
|
118
|
+
<r:metry:experiment name="lots" method="rand">
|
119
|
+
Control
|
120
|
+
<r:alternative name="alt1">
|
121
|
+
Alt1
|
122
|
+
</r:alternative>
|
123
|
+
<r:alternative name="alt2">
|
124
|
+
Alt2
|
125
|
+
</r:alternative>
|
126
|
+
<r:alternative name="alt3">
|
127
|
+
Alt3
|
128
|
+
</r:alternative>
|
129
|
+
<r:alternative name="alt4">
|
130
|
+
Alt4
|
131
|
+
</r:alternative>
|
132
|
+
</r:metry:experiment>
|
133
|
+
"""
|
134
|
+
When 100 visitors view "/"
|
135
|
+
Then at least 10 should see alternative "control" of experiment "lots"
|
136
|
+
Then at least 10 should see alternative "alt1" of experiment "lots"
|
137
|
+
Then at least 10 should see alternative "alt2" of experiment "lots"
|
138
|
+
Then at least 10 should see alternative "alt3" of experiment "lots"
|
139
|
+
Then at least 10 should see alternative "alt4" of experiment "lots"
|