hot_date_rails 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +29 -0
- data/app/assets/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/app/assets/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/app/assets/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/app/assets/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/app/assets/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/app/assets/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/images/ui-bg_gloss-wave_35_d18406_500x100.png +0 -0
- data/app/assets/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/app/assets/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/app/assets/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/app/assets/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/ui-icons_228ef1_256x240.png +0 -0
- data/app/assets/images/ui-icons_ef8c08_256x240.png +0 -0
- data/app/assets/images/ui-icons_ffd27a_256x240.png +0 -0
- data/app/assets/images/ui-icons_ffffff_256x240.png +0 -0
- data/app/assets/javascripts/hot_date_rails.js +3 -0
- data/app/assets/javascripts/hot_date_rails/hot_date_rails.js.coffee +51 -0
- data/app/assets/javascripts/vendors/jquery-ui-timepicker-addon.js +2203 -0
- data/app/assets/javascripts/vendors/jquery-ui.min.js +7 -0
- data/app/assets/stylesheets/hot_date_rails.css +5 -0
- data/app/assets/stylesheets/hot_date_rails/hot_date_rails.css +3 -0
- data/app/assets/stylesheets/vendors/jquery-ui-timepicker-addon.css +11 -0
- data/app/assets/stylesheets/vendors/jquery-ui.min.css +7 -0
- data/app/helpers/form_helper.rb +51 -0
- data/config/initializers/hot_date_rails.rb +7 -0
- data/config/locales/en.yml +14 -0
- data/config/routes.rb +2 -0
- data/lib/hot_date_rails.rb +7 -0
- data/lib/hot_date_rails/engine.rb +18 -0
- data/lib/hot_date_rails/version.rb +3 -0
- data/lib/tasks/hot_date_rails_tasks.rake +4 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +6 -0
- data/spec/dummy/app/assets/stylesheets/application.css +16 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/controllers/schedules_controller.rb +47 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/schedule.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +15 -0
- data/spec/dummy/app/views/schedules/_form.html.erb +50 -0
- data/spec/dummy/app/views/schedules/_form_custom.html.erb +45 -0
- data/spec/dummy/app/views/schedules/edit.html.erb +3 -0
- data/spec/dummy/app/views/schedules/new.html.erb +3 -0
- data/spec/dummy/app/views/schedules/new_custom.html.erb +3 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +21 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +9 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +82 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/assets.rb +8 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +61 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20140827212211_create_schedules.rb +15 -0
- data/spec/dummy/db/migrate/20140904013919_add_more_time_cols_to_schedules.rb +8 -0
- data/spec/dummy/db/migrate/20140909013705_add_easter_to_schedules.rb +5 -0
- data/spec/dummy/db/schema.rb +33 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +28785 -0
- data/spec/dummy/log/test.log +53644 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/assets/application-0a9d2b4cc991008ce090428c104cd2f9.css +44 -0
- data/spec/dummy/public/assets/application-0a9d2b4cc991008ce090428c104cd2f9.css.gz +0 -0
- data/spec/dummy/public/assets/application-75231e2d9c4ba59c5dcce22c02c3f2b5.js +13018 -0
- data/spec/dummy/public/assets/application-75231e2d9c4ba59c5dcce22c02c3f2b5.js.gz +0 -0
- data/spec/dummy/public/assets/application-88702d05ca17911e137085c49d66a04f.css +44 -0
- data/spec/dummy/public/assets/application-88702d05ca17911e137085c49d66a04f.css.gz +0 -0
- data/spec/dummy/public/assets/application-e919b580af72ffc6cf8b45fd4cc584bc.js +13004 -0
- data/spec/dummy/public/assets/application-e919b580af72ffc6cf8b45fd4cc584bc.js.gz +0 -0
- data/spec/dummy/public/assets/application-ea65e5d350ec88fcdfc6e38d2a119cf6.js +13018 -0
- data/spec/dummy/public/assets/application-ea65e5d350ec88fcdfc6e38d2a119cf6.js.gz +0 -0
- data/spec/dummy/public/assets/manifest-654589c9dc52de090f2a81d705900787.json +1 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/03c953ac82aa1daf32bc1a66b56349fe +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/07c4183acfe6d5a7aea2aecda1106100 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0dcafd38884d132cf7409862c5a6d5fb +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0ee983c6a75887fe48d7560ccc6a0c03 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0fd6aa81c1bdfb146f0baa44e380f36f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1ccd58997bd7f8cec65048f6fdc10e8c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1e473e9829cc11f3517eff392668b5b6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/20d19b39dec663d9be87a891a4c0a67b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2350c2ee82c5238ec1e55be119d0d800 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/26ec49b2f0e92be70aef037530b84a22 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2ae56d8109083ac59ffe28a0ebe70c44 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2fd3c140903239c0f9edf5ab5c84bf2c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/305cabb43aebb247b06295976ef63fcb +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/309a9ee2e83b353d861fdf597031b701 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/31218ba2dc910ebc7f0bc9bd857fec23 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3364f73ad7193c532a9c1d7ecea03fc5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/35e2ef2e624e8591caa31b9453f49b25 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/376c6e8b4ac8bf2405dcf785b93a82d4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/431036b212cedf8429a03d7d0e52f7c8 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/467f014120c9e7a4ffbe21bc8a879c7f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/46a1d346fcb352351e6b6726ed9513ba +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4750cc863766de1e6e18c50bb47a3a21 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/48a17156542e2bdc09b5669ff6926596 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4a44ed0a50044da8a54755a2cc6d5ed7 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4ab82c3223288bd2e9f2440895e442f5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/50090bf2e65584155c1c5c1470e7fd18 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5592f7754240b57e8d3e55f3e0c9de3a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/58414f484444cda5d3046905bfc6bd03 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/59002301bc2ad9c66b4368188402ef83 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/59b9f1f42a11670aff962e1359c7a93e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5b923b5314d14dfbcf80b289b49bf5cb +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5dd6206af3dba93208926d04778e26e4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5e3a16a7a65151928708d6db358c759b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5e89175bf034a9a006d9cb257dc025dc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5e8983182c2fa724cc7bb383b737ec51 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5f59dd3f960783f3d471aff70dd93166 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/685dcb29dc743fc5f93799940380de0c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6a5cbdcfa6dc2b5e180e991dea55f6f5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6b199942285fcc72f17d4e30ef62820e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6cdaf3faa7917186563f0bc9c52872c2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6d2058c2e924b4183c9c4c3ae85016da +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6fe42220db62ec1ddc415e14aa2c3273 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/705d80fa05052d5d6f269e75d7a11374 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/711727020dce7592b4d0288c229cc6e2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/72ba7fe3126a9ddee585f301a47f0666 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/76543b0908213ca3eeb0a2d562eb3a45 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7761773b21e56b187ef1ef0faed07f4c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8104425dff98e6732e55a66f92dd8c8b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/82b322c98d7b5192d3dfce571867e5ed +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/831efccccd36e05ad2fa9f0945ca7082 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/888399e3c0294d3131c1e82b6740ce29 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/88c4ca19a25ea136e9dab7519f3ee84f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/89aa62e587867525e04ef35f65a406a7 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8b975758d2d6a934be37038d6415afce +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/925489b1ca0719bbf039b596ae188766 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/965093127c5e679a2ffe5f562d7b4662 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9684b06d31e58ef507aa48016aa827a4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a243b9dd098a9b4a370c4646ca63074e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a35e9a18e56ebffc96fea26b2e6e4f53 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a507ee6f8a7a281cd4b2e8332e4a39f9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/aadfbec5339af9d56a5ba29aee9e46f7 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b095776a61a310c77a61ab31d090e5a2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b13cb66c8a1ae4e7639bc79e237e6768 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b19bf95d83eb39a720985b5c37e33ef5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b6051245a01e4e8d6aba8965acfe5ce3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b629d9ad7bc881994bf98bef8b9ca2b4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b935fc43bf4b4079f0d9ed97b866c3ea +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/be8776b4c225484cfec9e886ba615261 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c653b7516504b148d5f968578843aa98 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ce3725458aeb94a166e60eb5f5b2f403 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cfab3cc401a57096b885249b12a36654 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d4c415ddb0e6e126821ea6f1105f981d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d877f6f1f10d29f8e6b402c3ac268a19 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d9dec007927d3f827c5eb993f60d8733 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e07474169c3614b53fa0c1cd9737478e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e07e7b1488057009a04155c97fecdffd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e232eb7c837022730acbebd7ce0ad683 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e6dd9559b0f917d14c02e2284ad6172e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e6f3190c03c1c2b869d131e25d38eb7b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e7f7117ae74657aa576cd6344288e764 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e8b18160729bab32f8368174bf32a9ce +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ed689f07991e5a86630a15be17d0e777 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ede50aac498bcc593c9a0fd3e477b2e5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/efab1ea03b3f1170b8db1ad8f8464ca6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f1ded22ac375449cc064ebca2ffa3018 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fc071e96fdcbe300c1a450a2962c6d51 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fc267d2ab25b7bcd03535b5d6475070b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fe5cd4086fcd06a48c5870042e6d280b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fedb3f41ea7af9703d934048cf5b6776 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fff87b59365e7c8663498f6e2c82ffb9 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/0dcafd38884d132cf7409862c5a6d5fb +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/20d19b39dec663d9be87a891a4c0a67b +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/305cabb43aebb247b06295976ef63fcb +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3364f73ad7193c532a9c1d7ecea03fc5 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/376c6e8b4ac8bf2405dcf785b93a82d4 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/46a1d346fcb352351e6b6726ed9513ba +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/4750cc863766de1e6e18c50bb47a3a21 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/4a44ed0a50044da8a54755a2cc6d5ed7 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/4ab82c3223288bd2e9f2440895e442f5 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/50090bf2e65584155c1c5c1470e7fd18 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5592f7754240b57e8d3e55f3e0c9de3a +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/57b0922c1c45bf81fed35d7be172cb3b +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5b923b5314d14dfbcf80b289b49bf5cb +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5e3a16a7a65151928708d6db358c759b +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5e89175bf034a9a006d9cb257dc025dc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5f59dd3f960783f3d471aff70dd93166 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/6a5cbdcfa6dc2b5e180e991dea55f6f5 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/6b199942285fcc72f17d4e30ef62820e +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/6d2058c2e924b4183c9c4c3ae85016da +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/72ba7fe3126a9ddee585f301a47f0666 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/7761773b21e56b187ef1ef0faed07f4c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/831efccccd36e05ad2fa9f0945ca7082 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/89aa62e587867525e04ef35f65a406a7 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/925489b1ca0719bbf039b596ae188766 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/965093127c5e679a2ffe5f562d7b4662 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/aadfbec5339af9d56a5ba29aee9e46f7 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/af9317db2fd5899ffd150362c752ca6e +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/b13cb66c8a1ae4e7639bc79e237e6768 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/b629d9ad7bc881994bf98bef8b9ca2b4 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/b935fc43bf4b4079f0d9ed97b866c3ea +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/c653b7516504b148d5f968578843aa98 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/ce3725458aeb94a166e60eb5f5b2f403 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d877f6f1f10d29f8e6b402c3ac268a19 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e07474169c3614b53fa0c1cd9737478e +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e07e7b1488057009a04155c97fecdffd +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e232eb7c837022730acbebd7ce0ad683 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e8b18160729bab32f8368174bf32a9ce +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/ed689f07991e5a86630a15be17d0e777 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/efab1ea03b3f1170b8db1ad8f8464ca6 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/fedb3f41ea7af9703d934048cf5b6776 +0 -0
- data/spec/factories/factory.rb +13 -0
- data/spec/helpers/form_helper_spec.rb +17 -0
- data/spec/requests/date_picker_spec.rb +113 -0
- data/spec/requests/datetime_picker_spec.rb +61 -0
- data/spec/requests/microdata_options_spec.rb +60 -0
- data/spec/requests/override_defaults_spec.rb +145 -0
- data/spec/requests/time_picker_spec.rb +134 -0
- data/spec/spec_helper.rb +46 -0
- metadata +628 -0
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe "Datetime Picker", :type => :request do
|
4
|
+
describe "Create New", :js => true do
|
5
|
+
before(:each) do
|
6
|
+
visit new_schedule_path
|
7
|
+
end
|
8
|
+
|
9
|
+
it "is displayed when datetime field receives focus and hidden
|
10
|
+
when datetime field loses focus" do
|
11
|
+
find("#apocalypse").click
|
12
|
+
page.should have_selector("#ui-datepicker-div", visible: true)
|
13
|
+
find("#schedule_name").click
|
14
|
+
sleep 1
|
15
|
+
page.should have_no_selector("#ui-datepicker-div", visible: true)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "fills in the datetime field correctly and disappears when 'Done' button clicked" do
|
19
|
+
find("#apocalypse").click
|
20
|
+
curr_date = Time.now
|
21
|
+
click_link("1")
|
22
|
+
find("div.ui_tpicker_hour_slider").find("span.ui-slider-handle").drag_by(62, 0) #1 pm
|
23
|
+
find("div.ui_tpicker_minute_slider").find("span.ui-slider-handle").drag_by(27, 0) #15 min
|
24
|
+
find("button.ui-datepicker-close").click
|
25
|
+
find("#apocalypse").value
|
26
|
+
.should eq "#{'%02i' % curr_date.month}/01/#{curr_date.year} 13:15"
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "Alternate Datetime formats" do
|
30
|
+
it "shows datetime with seconds" do
|
31
|
+
find("#epoch").click
|
32
|
+
curr_date = Time.now
|
33
|
+
click_link("1")
|
34
|
+
find("div.ui_tpicker_hour_slider").find("span.ui-slider-handle").drag_by(62, 0) #1 pm
|
35
|
+
find("div.ui_tpicker_minute_slider").find("span.ui-slider-handle").drag_by(27, 0) #15 min
|
36
|
+
find("div.ui_tpicker_second_slider").find("span.ui-slider-handle").drag_by(27, 0) #15 sec
|
37
|
+
find("button.ui-datepicker-close").click
|
38
|
+
find("#epoch").value
|
39
|
+
.should eq "#{curr_date.month}/1/#{curr_date.year} 13:15:15"
|
40
|
+
click_button("Create Schedule")
|
41
|
+
#binding.pry
|
42
|
+
find("#epoch").value
|
43
|
+
.should eq "#{curr_date.month}/1/#{curr_date.year} 13:15:15"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "Update Existing", :js => true do
|
50
|
+
before(:each) do
|
51
|
+
@curr_date = Time.now
|
52
|
+
@schedule = FactoryGirl.create(:schedule, apocalypse: @curr_date.to_datetime)
|
53
|
+
visit edit_schedule_path(@schedule)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "displays current value in format specified in locale file" do
|
57
|
+
find("#apocalypse").value.should eq I18n.localize(@curr_date.to_datetime, format: :datetime)
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe "Picker Microdata Customization", :type => :request do
|
4
|
+
before(:each) do
|
5
|
+
visit '/custom_schedules/new'
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "doesn't affect certain existing features" do
|
9
|
+
describe "still allows microdata to be passed through", :js => true do
|
10
|
+
it "has the data-my-data attribute" do
|
11
|
+
expect(find("input#suppertime")['data-my-data']).to match("true")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
describe "allows css classes to be passed through while adding the necessary picker class" do
|
15
|
+
it "has classes 'css_class' and 'my_class'" do
|
16
|
+
expect(find("input#suppertime")['class']).to match("css_class")
|
17
|
+
expect(find("input#suppertime")['class']).to match("my_class")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
describe "Date Picker", :js => true do
|
24
|
+
before(:each) do
|
25
|
+
find("input#birthday").click
|
26
|
+
end
|
27
|
+
it "allows us to display the panel containing the Today and Done buttons" do
|
28
|
+
page.should have_selector("button.ui-datepicker-current", visible: true)
|
29
|
+
page.should have_selector("button.ui-datepicker-close", visible: true)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "Time Picker", :js => true do
|
34
|
+
before(:each) do
|
35
|
+
find("input#lunchtime").click
|
36
|
+
end
|
37
|
+
describe "add or change text" do
|
38
|
+
it "allows us to specify the text of the 'Now' button" do
|
39
|
+
find("button.ui-datepicker-current").text.should eq "Current"
|
40
|
+
end
|
41
|
+
it "allows us to set the text on the Done button" do
|
42
|
+
find("button.ui-datepicker-close").text.should eq "Set"
|
43
|
+
end
|
44
|
+
it "allows us to add a suffix after the time displayed" do
|
45
|
+
find("dd.ui_tpicker_time").text.should match(/.*\so\'clock/)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "Datetime Picker", :js => true do
|
51
|
+
before(:each) do
|
52
|
+
find("input#apocalypse").click
|
53
|
+
end
|
54
|
+
it "allows us to add a separator between the date and time in the input value" do
|
55
|
+
find("a", text: "17").click
|
56
|
+
find("input#apocalypse").value.should match(/\d\d\/\d\d\/\d{4} @ \d\d:\d\d/)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
@@ -0,0 +1,145 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
#Usage: rspec spec --tag @defaults --order default
|
4
|
+
#To run all other specs: rspec spec --tag ~@defaults
|
5
|
+
|
6
|
+
RSpec.describe "Override Defaults", :type => :request, :js => true, defaults: true do
|
7
|
+
describe "time grid intervals" do
|
8
|
+
before(:each) do
|
9
|
+
visit '/custom_schedules/new'
|
10
|
+
end
|
11
|
+
it "shows Minute grid with intervals of 15" do
|
12
|
+
find("input#lunchtime").click
|
13
|
+
page.should have_selector(:xpath, "//dd[@class='ui_tpicker_minute']//table[@class='ui-tpicker-grid-label']//td[text()='15']")
|
14
|
+
page.should have_selector(:xpath, "//dd[@class='ui_tpicker_minute']//table[@class='ui-tpicker-grid-label']//td[text()='30']")
|
15
|
+
page.should have_selector(:xpath, "//dd[@class='ui_tpicker_minute']//table[@class='ui-tpicker-grid-label']//td[text()='45']")
|
16
|
+
end
|
17
|
+
it "overrides the default value we already overrode when explicitly passed to tag" do
|
18
|
+
find("input#suppertime").click
|
19
|
+
page.should have_selector(:xpath, "//dd[@class='ui_tpicker_minute']//table[@class='ui-tpicker-grid-label']//td[text()='20']")
|
20
|
+
page.should have_selector(:xpath, "//dd[@class='ui_tpicker_minute']//table[@class='ui-tpicker-grid-label']//td[text()='40']")
|
21
|
+
end
|
22
|
+
it "doesn't show any grid numbers when the option is passed an empty string" do
|
23
|
+
find("input#alarm_setting").click
|
24
|
+
page.should have_selector(:xpath, "//dd[@class='ui_tpicker_hour']//table[@class='ui-tpicker-grid-label']//td[text()='16']")
|
25
|
+
page.should have_selector(:xpath, "//dd[@class='ui_tpicker_minute']//table[@class='ui-tpicker-grid-label']//td[text()='30']")
|
26
|
+
page.should_not have_selector(:xpath, "//dd[@class='ui_tpicker_second']//table[@class='ui-tpicker-grid-label']//td")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "date and time format factory defaults" do
|
31
|
+
describe "date format" do
|
32
|
+
|
33
|
+
describe "HotDateRails default date" do
|
34
|
+
before(:each) do
|
35
|
+
visit new_schedule_path
|
36
|
+
end
|
37
|
+
it "fills in the date field with date formatted like 01/01/2001" do
|
38
|
+
curr_date = Time.now
|
39
|
+
find("#birthday").click
|
40
|
+
find("select.ui-datepicker-month").select("Jan")
|
41
|
+
click_link("1")
|
42
|
+
sleep 1
|
43
|
+
find("#birthday").value.should eq "01/01/#{curr_date.year}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
describe "time Format" do
|
49
|
+
describe "HotDateRails time default" do
|
50
|
+
before(:each) do
|
51
|
+
visit new_schedule_path
|
52
|
+
end
|
53
|
+
it "fills in the time field with time formatted like 23:59 " do
|
54
|
+
find("#lunchtime").click
|
55
|
+
find("div.ui_tpicker_hour_slider").find("span.ui-slider-handle").drag_by(62, 0)
|
56
|
+
find("div.ui_tpicker_minute_slider").find("span.ui-slider-handle").drag_by(27, 0)
|
57
|
+
find("button.ui-datepicker-close").click
|
58
|
+
find("#lunchtime").value.should eq "13:15"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
describe "datetime Format" do
|
63
|
+
describe "HotDateRails datetime default" do
|
64
|
+
before(:each) do
|
65
|
+
visit new_schedule_path
|
66
|
+
end
|
67
|
+
it "fills in the datetime field with datetime formatted like 01/01/2001 23:59 " do
|
68
|
+
find("#apocalypse").click
|
69
|
+
click_link("1")
|
70
|
+
find("div.ui_tpicker_hour_slider").find("span.ui-slider-handle").drag_by(62, 0)
|
71
|
+
find("div.ui_tpicker_minute_slider").find("span.ui-slider-handle").drag_by(27, 0)
|
72
|
+
find("button.ui-datepicker-close").click
|
73
|
+
sleep 1
|
74
|
+
find("#apocalypse").value.should match(/\d\d\/\d\d\/\d{4} \d\d:\d\d/)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "override date and time format factory defaults" do
|
82
|
+
describe "date format" do
|
83
|
+
describe "overridden default time" do
|
84
|
+
before(:each) do
|
85
|
+
HotDateRails.config do |c|
|
86
|
+
c.date_format = "MM d, yy"
|
87
|
+
end
|
88
|
+
#defaults are usually overridden in spec/dummy/config/environment.rb
|
89
|
+
visit '/custom_schedules/new'
|
90
|
+
end
|
91
|
+
it "fills in the date field with date formatted like 'January 1, 2010' " do
|
92
|
+
find("#christmas").click
|
93
|
+
find("select.ui-datepicker-month").select("Jan")
|
94
|
+
click_link("1")
|
95
|
+
sleep 1
|
96
|
+
find("#christmas").value.should match(/\w*\s\d{1,2},\s\d{4}/)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
|
102
|
+
describe "time Format" do
|
103
|
+
describe "overridden default time" do
|
104
|
+
before(:each) do
|
105
|
+
HotDateRails.config do |c|
|
106
|
+
c.time_format = "h:mm tt"
|
107
|
+
end
|
108
|
+
visit '/custom_schedules/new'
|
109
|
+
end
|
110
|
+
it "fills in the time field with time formatted like '9:35 am' " do
|
111
|
+
find("#beer_oclock").click
|
112
|
+
find("div.ui_tpicker_hour_slider").find("span.ui-slider-handle").drag_by(62, 0)
|
113
|
+
find("div.ui_tpicker_minute_slider").find("span.ui-slider-handle").drag_by(27, 0)
|
114
|
+
find("button.ui-datepicker-close").click
|
115
|
+
find("#beer_oclock").value.should eq "1:15 pm"
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "datetime Format" do
|
121
|
+
describe "overridden default datetime" do
|
122
|
+
before(:each) do
|
123
|
+
HotDateRails.config do |c|
|
124
|
+
c.date_format = "MM d, yy"
|
125
|
+
c.time_format = "h:mm tt"
|
126
|
+
end
|
127
|
+
visit '/custom_schedules/new'
|
128
|
+
end
|
129
|
+
it "fills in the datetime field with datetime formatted like January 1, 2001 1:59 pm " do
|
130
|
+
find("#epoch").click
|
131
|
+
click_link("1")
|
132
|
+
find("div.ui_tpicker_hour_slider").find("span.ui-slider-handle").drag_by(62, 0)
|
133
|
+
find("div.ui_tpicker_minute_slider").find("span.ui-slider-handle").drag_by(27, 0)
|
134
|
+
find("button.ui-datepicker-close").click
|
135
|
+
sleep 1
|
136
|
+
find("#epoch").value.should match(/\w*\s\d{1,2},\s\d{4} 1:15 pm/)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
143
|
+
|
144
|
+
|
145
|
+
|
@@ -0,0 +1,134 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe "Time Picker", :type => :request do
|
4
|
+
describe "Create New", :js => true do
|
5
|
+
before(:each) do
|
6
|
+
visit new_schedule_path
|
7
|
+
end
|
8
|
+
describe "Standard format" do
|
9
|
+
it "is displayed when time field receives focus and is hidden
|
10
|
+
when time field loses focus" do
|
11
|
+
find("#lunchtime").click
|
12
|
+
page.should have_selector("#ui-datepicker-div", visible: true)
|
13
|
+
find("#schedule_name").click
|
14
|
+
sleep 1
|
15
|
+
page.should have_no_selector("#ui-datepicker-div", visible: true)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "fills in the time field correctly and disappears when 'Done' button clicked" do
|
19
|
+
find("#lunchtime").click
|
20
|
+
find("div.ui_tpicker_hour_slider").find("span.ui-slider-handle").drag_by(62, 0) #1 pm
|
21
|
+
find("div.ui_tpicker_minute_slider").find("span.ui-slider-handle").drag_by(27, 0) #15 min
|
22
|
+
find("button.ui-datepicker-close").click
|
23
|
+
find("#lunchtime").value.should eq "13:15"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
describe "Optional formats" do
|
29
|
+
it "displays seconds when specified" do
|
30
|
+
find("#alarm_setting").click
|
31
|
+
within("div.ui_tpicker_second_slider", visible: true) do
|
32
|
+
page.should have_selector("span.ui-slider-handle") #seconds slider exists
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it "displays like '12:00 am' when specified" do
|
37
|
+
find("#suppertime").click
|
38
|
+
find("dd.ui_tpicker_time").text.should match('12:00 am')
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "updated time is properly persisted in the database" do
|
42
|
+
it "updates data prpperly when lowercase meridian is specified" do
|
43
|
+
find("#suppertime").click
|
44
|
+
find("div.ui_tpicker_hour_slider").find("span.ui-slider-handle").drag_by(62, 0) #1 pm
|
45
|
+
find("div.ui_tpicker_minute_slider").find("span.ui-slider-handle").drag_by(27, 0) #15 min
|
46
|
+
find("button.ui-datepicker-close").click
|
47
|
+
click_button("Create Schedule")
|
48
|
+
sleep 1
|
49
|
+
find("input#suppertime").value.should match('1:15 pm')
|
50
|
+
end
|
51
|
+
it "updates data prpperly when uppercase meridian is specified" do
|
52
|
+
find("#beer_oclock").click
|
53
|
+
find("div.ui_tpicker_hour_slider").find("span.ui-slider-handle").drag_by(62, 0) #1 pm
|
54
|
+
find("div.ui_tpicker_minute_slider").find("span.ui-slider-handle").drag_by(27, 0) #15 min
|
55
|
+
find("button.ui-datepicker-close").click
|
56
|
+
click_button("Create Schedule")
|
57
|
+
sleep 1
|
58
|
+
find("input#beer_oclock").value.should match('1:15 PM')
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "Update Existing", :js => true do
|
66
|
+
before(:each) do
|
67
|
+
@curr_date = Time.now
|
68
|
+
@schedule = FactoryGirl.create(:schedule, lunchtime: @curr_date.to_time.strftime("%H:%M"),
|
69
|
+
alarm_setting: @curr_date.to_time.strftime("%H:%M:%S"),
|
70
|
+
suppertime: @curr_date.to_time.strftime("%H:%M"), beer_oclock: @curr_date.to_time.strftime("%H:%M"))
|
71
|
+
visit edit_schedule_path(@schedule)
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "displays current value in format specified in locale file", :js => false do
|
75
|
+
it "shows default time format" do
|
76
|
+
find("#lunchtime").value.should eq I18n.localize(@curr_date.to_time)
|
77
|
+
end
|
78
|
+
it "shows time with seconds when custom locale_format specified" do
|
79
|
+
find("#alarm_setting").value.should eq I18n.localize(@curr_date.to_time, format: :w_seconds)
|
80
|
+
end
|
81
|
+
it "shows time with 12-hour clock and lower case meridian" do
|
82
|
+
find("#suppertime").value.should eq I18n.localize(@curr_date.to_time, format: :lc_merid).strip
|
83
|
+
end
|
84
|
+
it "shows time with 12-hour clock and upper case meridian" do
|
85
|
+
find("#beer_oclock").value.should eq I18n.localize(@curr_date.to_time, format: :uc_merid).strip
|
86
|
+
end
|
87
|
+
end
|
88
|
+
describe "time value is correctly indicated on the timepicker widget" do
|
89
|
+
it "displays default time format" do
|
90
|
+
find("#lunchtime").click
|
91
|
+
find("dd.ui_tpicker_time").text.should match(I18n.localize(@curr_date.to_time))
|
92
|
+
end
|
93
|
+
it "displays time with seconds format" do
|
94
|
+
find("#alarm_setting").click
|
95
|
+
find("dd.ui_tpicker_time").text.should match(I18n.localize(@curr_date.to_time, format: :w_seconds))
|
96
|
+
end
|
97
|
+
describe "12-hour clock and lower case meridian format" do
|
98
|
+
it "displays single-digit hour" do
|
99
|
+
date_obj = DateTime.strptime("1:45 am", "%H:%M %P")
|
100
|
+
@schedule = FactoryGirl.create(:schedule, suppertime: date_obj)
|
101
|
+
visit edit_schedule_path(@schedule)
|
102
|
+
find("#suppertime").click
|
103
|
+
find("dd.ui_tpicker_time").text.should match(I18n.localize(date_obj, format: :lc_merid))
|
104
|
+
end
|
105
|
+
it "displays double-digit hour" do
|
106
|
+
date_obj = DateTime.strptime("11:47 pm", "%H:%M %P")
|
107
|
+
@schedule = FactoryGirl.create(:schedule, suppertime: date_obj)
|
108
|
+
visit edit_schedule_path(@schedule)
|
109
|
+
find("#suppertime").click
|
110
|
+
find("dd.ui_tpicker_time").text.should match(I18n.localize(date_obj, format: :lc_merid))
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
describe "12-hour clock and upper case meridian format" do
|
115
|
+
it "displays single-digit hour" do
|
116
|
+
date_obj = DateTime.strptime("1:45 am", "%H:%M %p")
|
117
|
+
@schedule = FactoryGirl.create(:schedule, beer_oclock: date_obj)
|
118
|
+
visit edit_schedule_path(@schedule)
|
119
|
+
find("#beer_oclock").click
|
120
|
+
find("dd.ui_tpicker_time").text.should match(I18n.localize(date_obj, format: :uc_merid))
|
121
|
+
end
|
122
|
+
it "displays double-digit hour" do
|
123
|
+
date_obj = DateTime.strptime("11:47 pm", "%H:%M %p")
|
124
|
+
@schedule = FactoryGirl.create(:schedule, beer_oclock: date_obj)
|
125
|
+
visit edit_schedule_path(@schedule)
|
126
|
+
find("#beer_oclock").click
|
127
|
+
find("dd.ui_tpicker_time").text.should match(I18n.localize(date_obj, format: :uc_merid))
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
ENV['RAILS_ENV'] ||= 'test'
|
2
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
3
|
+
require 'rspec/rails'
|
4
|
+
#require 'rspec/autorun'
|
5
|
+
require 'factory_girl_rails'
|
6
|
+
require 'database_cleaner'
|
7
|
+
require 'capybara/rails'
|
8
|
+
require 'capybara/rspec'
|
9
|
+
|
10
|
+
Rails.backtrace_cleaner.remove_silencers!
|
11
|
+
|
12
|
+
# Load support files
|
13
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
14
|
+
|
15
|
+
RSpec.configure do |config|
|
16
|
+
config.mock_with :rspec
|
17
|
+
config.use_transactional_fixtures = false
|
18
|
+
config.infer_base_class_for_anonymous_controllers = false
|
19
|
+
config.order = "random"
|
20
|
+
config.include Capybara::DSL
|
21
|
+
config.expect_with :rspec do |c|
|
22
|
+
c.syntax = [:should, :expect]
|
23
|
+
end
|
24
|
+
config.color = true
|
25
|
+
config.use_transactional_fixtures = false
|
26
|
+
config.before(:each) do
|
27
|
+
DatabaseCleaner.strategy = :transaction
|
28
|
+
DatabaseCleaner.clean_with(:truncation)
|
29
|
+
FactoryGirl.reload
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
#For testing jQuery UI slider widget
|
35
|
+
module CapybaraExtension
|
36
|
+
def drag_by(right_by, down_by)
|
37
|
+
base.drag_by(right_by, down_by)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
module CapybaraSeleniumExtension
|
41
|
+
def drag_by(right_by, down_by)
|
42
|
+
driver.browser.action.drag_and_drop_by(native, right_by, down_by).perform
|
43
|
+
end
|
44
|
+
end
|
45
|
+
::Capybara::Selenium::Node.send :include, CapybaraSeleniumExtension
|
46
|
+
::Capybara::Node::Element.send :include, CapybaraExtension
|