teabag 0.3.0
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/MIT.LICENSE +22 -0
- data/README.md +407 -0
- data/app/assets/images/teabag/photo-white.jpg +0 -0
- data/app/assets/javascripts/teabag-jasmine.js +3488 -0
- data/app/assets/javascripts/teabag-mocha.js +5923 -0
- data/app/assets/javascripts/teabag/base/reporters.coffee +105 -0
- data/app/assets/javascripts/teabag/base/reporters/console.coffee +58 -0
- data/app/assets/javascripts/teabag/base/reporters/html.coffee +177 -0
- data/app/assets/javascripts/teabag/base/reporters/html/failure_view.coffee +12 -0
- data/app/assets/javascripts/teabag/base/reporters/html/progress_view.coffee +67 -0
- data/app/assets/javascripts/teabag/base/reporters/html/spec_view.coffee +46 -0
- data/app/assets/javascripts/teabag/base/reporters/html/suite_view.coffee +39 -0
- data/app/assets/javascripts/teabag/base/runner.coffee +22 -0
- data/app/assets/javascripts/teabag/base/teabag.coffee +18 -0
- data/app/assets/javascripts/teabag/jasmine.coffee +38 -0
- data/app/assets/javascripts/teabag/jasmine/reporters/html.coffee +11 -0
- data/app/assets/javascripts/teabag/mocha.coffee +21 -0
- data/app/assets/javascripts/teabag/mocha/reporters/console.coffee +14 -0
- data/app/assets/javascripts/teabag/mocha/reporters/html.coffee +27 -0
- data/app/assets/stylesheets/teabag.css +332 -0
- data/app/controllers/teabag/spec_controller.rb +25 -0
- data/app/views/teabag/spec/index.html.erb +18 -0
- data/config/routes.rb +8 -0
- data/lib/generators/teabag/install/POST_INSTALL +6 -0
- data/lib/generators/teabag/install/install_generator.rb +24 -0
- data/lib/generators/teabag/install/templates/initializer.rb +115 -0
- data/lib/generators/teabag/install/templates/spec_helper.js +31 -0
- data/lib/tasks/teabag.rake +5 -0
- data/lib/teabag.rb +6 -0
- data/lib/teabag/configuration.rb +68 -0
- data/lib/teabag/console.rb +57 -0
- data/lib/teabag/engine.rb +16 -0
- data/lib/teabag/exceptions.rb +6 -0
- data/lib/teabag/formatters/base_formatter.rb +32 -0
- data/lib/teabag/formatters/progress_formatter.rb +93 -0
- data/lib/teabag/phantomjs/runner.coffee +61 -0
- data/lib/teabag/result.rb +46 -0
- data/lib/teabag/runner.rb +49 -0
- data/lib/teabag/server.rb +64 -0
- data/lib/teabag/suite.rb +39 -0
- data/lib/teabag/version.rb +3 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/javascripts/specs/asset_spec.js +11 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +15 -0
- data/spec/dummy/config/application.rb +54 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +27 -0
- data/spec/dummy/config/environments/production.rb +67 -0
- data/spec/dummy/config/environments/test.rb +29 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/teabag.rb +22 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +58 -0
- data/spec/dummy/log/development.log +308541 -0
- data/spec/dummy/log/production.log +402 -0
- data/spec/dummy/log/test.log +3459 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/tmp/cache/assets/C13/B50/sprockets%2F431452d41e5087d2211162d23c63789b +0 -0
- data/spec/dummy/tmp/cache/assets/C18/F90/sprockets%2F369a3f720404378b4162541fd432742d +0 -0
- data/spec/dummy/tmp/cache/assets/C28/650/sprockets%2F24278fc33d7566396414307f37b119b6 +0 -0
- data/spec/dummy/tmp/cache/assets/C2B/5D0/sprockets%2F98606f6051a5fc71379af24236793353 +0 -0
- data/spec/dummy/tmp/cache/assets/C35/510/sprockets%2Fb5f1121863a3025179f1a621e7127b10 +0 -0
- data/spec/dummy/tmp/cache/assets/C46/E90/sprockets%2F006527268e406896b12c930eb572f00a +0 -0
- data/spec/dummy/tmp/cache/assets/C4A/700/sprockets%2F233efef497080a6a0226928033c09166 +0 -0
- data/spec/dummy/tmp/cache/assets/C4C/5E0/sprockets%2Fcb61192e6366f0228a57c91459c00256 +0 -0
- data/spec/dummy/tmp/cache/assets/C4E/6A0/sprockets%2F6443716ba17b71f265656634b3b9441d +0 -0
- data/spec/dummy/tmp/cache/assets/C4E/9B0/sprockets%2Fa807397434c9262c3d62da3e91152184 +0 -0
- data/spec/dummy/tmp/cache/assets/C59/250/sprockets%2Fa80d3fe493d2476e58c4323996064512 +0 -0
- data/spec/dummy/tmp/cache/assets/C5C/D00/sprockets%2Fdd8fdc961143499e53f5327126721608 +0 -0
- data/spec/dummy/tmp/cache/assets/C64/630/sprockets%2F9435866920a6269633da595e0638ecf4 +0 -0
- data/spec/dummy/tmp/cache/assets/C64/740/sprockets%2Fa65d355185e6ed0699611739c38a6683 +0 -0
- data/spec/dummy/tmp/cache/assets/C6C/3A0/sprockets%2F35a43b3a31512a820f249c841b7b3862 +0 -0
- data/spec/dummy/tmp/cache/assets/C75/D50/sprockets%2F5302968a40e08d2c011aa38666d273f6 +0 -0
- data/spec/dummy/tmp/cache/assets/C78/EF0/sprockets%2F65f827a4a5337d05d037845161b41ab8 +0 -0
- data/spec/dummy/tmp/cache/assets/C78/F80/sprockets%2F9161622ddd251097a4ab816b8220984c +0 -0
- data/spec/dummy/tmp/cache/assets/C7D/730/sprockets%2F6c062828354bbf37032360766d652fea +0 -0
- data/spec/dummy/tmp/cache/assets/C80/EC0/sprockets%2F8ae4c854735563d420f90b1b236a3497 +0 -0
- data/spec/dummy/tmp/cache/assets/C80/F70/sprockets%2Fe5c9811902c221828ea647978f000be3 +0 -0
- data/spec/dummy/tmp/cache/assets/C81/630/sprockets%2F8914408137182ffb4a2f37176f2e207d +0 -0
- data/spec/dummy/tmp/cache/assets/C81/D20/sprockets%2F7979862b333720a8f2021a877a4af0f4 +0 -0
- data/spec/dummy/tmp/cache/assets/C83/C30/sprockets%2F9c8d8400390c4927ab703e2b785415d6 +0 -0
- data/spec/dummy/tmp/cache/assets/C85/D10/sprockets%2F01d329696710efd821850ec83292bc76 +0 -0
- data/spec/dummy/tmp/cache/assets/C87/850/sprockets%2F45dd8808f5c34633480a87058f025bc6 +0 -0
- data/spec/dummy/tmp/cache/assets/C88/720/sprockets%2F0b0cf4198eb5818ffc69908188301127 +0 -0
- data/spec/dummy/tmp/cache/assets/C89/700/sprockets%2F259935a7704fef0069303ea63fa89408 +0 -0
- data/spec/dummy/tmp/cache/assets/C8A/460/sprockets%2F77bffd9959420103906722b404ae8d59 +0 -0
- data/spec/dummy/tmp/cache/assets/C8D/8A0/sprockets%2F52b90ee84d6593767a35dc417b862228 +0 -0
- data/spec/dummy/tmp/cache/assets/C90/9D0/sprockets%2Ff8669a76788e96f11e6d8630a10113a8 +0 -0
- data/spec/dummy/tmp/cache/assets/C91/040/sprockets%2F8d009759ea4847ffd6171a1579f41634 +0 -0
- data/spec/dummy/tmp/cache/assets/C91/FA0/sprockets%2F2eb81283f5789ae91a69344552db3856 +0 -0
- data/spec/dummy/tmp/cache/assets/C94/7F0/sprockets%2F5511d2208b7b12aa9130a72ef07b6803 +0 -0
- data/spec/dummy/tmp/cache/assets/C96/A60/sprockets%2F6e220f96d15d5db885711f50876993e5 +0 -0
- data/spec/dummy/tmp/cache/assets/C9D/E90/sprockets%2F3045c9533f179d3e1c805d163ed002a0 +0 -0
- data/spec/dummy/tmp/cache/assets/CA2/7D0/sprockets%2F1f39d625b67ba277a4811d361074a2d1 +0 -0
- data/spec/dummy/tmp/cache/assets/CA2/F50/sprockets%2F86094c5d1b6399d614b0771a3a0a45b0 +0 -0
- data/spec/dummy/tmp/cache/assets/CA5/760/sprockets%2F06db38110a7245399c693831d01bcb6e +0 -0
- data/spec/dummy/tmp/cache/assets/CA6/2F0/sprockets%2F20040c18b672e4c4d2731a2a929d8b97 +0 -0
- data/spec/dummy/tmp/cache/assets/CA6/DF0/sprockets%2F7da83747ce56e49393b6b8726587f846 +0 -0
- data/spec/dummy/tmp/cache/assets/CA8/400/sprockets%2F7fb4801a4d3c5ed42610b9076362283f +0 -0
- data/spec/dummy/tmp/cache/assets/CA9/440/sprockets%2F488d156744e10731bee14b5a931a581d +0 -0
- data/spec/dummy/tmp/cache/assets/CAA/0C0/sprockets%2F057b0ce384f16d9202ae84473436cc35 +0 -0
- data/spec/dummy/tmp/cache/assets/CAD/410/sprockets%2F651414e5c7e86f05c5108dc71626b25c +0 -0
- data/spec/dummy/tmp/cache/assets/CB1/0D0/sprockets%2Fe3ca7997e9150f7731f50b227533d12c +0 -0
- data/spec/dummy/tmp/cache/assets/CB1/690/sprockets%2F7a8100c6511e848b1148287ad87cb47f +0 -0
- data/spec/dummy/tmp/cache/assets/CB2/640/sprockets%2Fd629e34645a3892189c1f2c052f6d2c2 +0 -0
- data/spec/dummy/tmp/cache/assets/CB3/240/sprockets%2Fb3935adb01833c52148cf492898db094 +0 -0
- data/spec/dummy/tmp/cache/assets/CB4/970/sprockets%2Fe4737223d2ba69d655f6611f0527d58b +0 -0
- data/spec/dummy/tmp/cache/assets/CB6/190/sprockets%2Ff18444022b08982685f9cd15b62b4dd7 +0 -0
- data/spec/dummy/tmp/cache/assets/CB6/C00/sprockets%2F4119946cb82f96e5a2793013a3bdd855 +0 -0
- data/spec/dummy/tmp/cache/assets/CB7/BF0/sprockets%2Fd56192b300ec0979b66d022e996fa079 +0 -0
- data/spec/dummy/tmp/cache/assets/CB8/E20/sprockets%2Fa593029687d6717431a3dc7360ca9dd9 +0 -0
- data/spec/dummy/tmp/cache/assets/CBB/FA0/sprockets%2F74922109263bdc965b2e9567eec6d154 +0 -0
- data/spec/dummy/tmp/cache/assets/CBC/E20/sprockets%2Faf708488d1178752bfbb925184f194c3 +0 -0
- data/spec/dummy/tmp/cache/assets/CBE/AB0/sprockets%2F3f8985f1b9c67404dd9a14f0647404c8 +0 -0
- data/spec/dummy/tmp/cache/assets/CBF/630/sprockets%2F707d2db81468088470d476abff35388d +0 -0
- data/spec/dummy/tmp/cache/assets/CC1/440/sprockets%2F17172f9f3b01ee6fc473047c76943e89 +0 -0
- data/spec/dummy/tmp/cache/assets/CC2/7B0/sprockets%2Ff35764dca2f5e55c5538589cf0125398 +0 -0
- data/spec/dummy/tmp/cache/assets/CC2/EC0/sprockets%2F76bf80cb571ca530357f78db78167866 +0 -0
- data/spec/dummy/tmp/cache/assets/CC4/800/sprockets%2Fdc523a6389fe6285945c07a90d58c792 +0 -0
- data/spec/dummy/tmp/cache/assets/CC4/CC0/sprockets%2F94470799e3269f582188fe8e5201acac +0 -0
- data/spec/dummy/tmp/cache/assets/CC4/D20/sprockets%2F580f5e966a053317b284bc9d99180ff9 +0 -0
- data/spec/dummy/tmp/cache/assets/CC6/D00/sprockets%2Fc3ad440856320f4a51301c6ecb6b6342 +0 -0
- data/spec/dummy/tmp/cache/assets/CCB/540/sprockets%2F304d8554d7e38ae101c47b0a027147bc +0 -0
- data/spec/dummy/tmp/cache/assets/CCD/560/sprockets%2Fc026ba3c1ad5675314735b56c2435ac7 +0 -0
- data/spec/dummy/tmp/cache/assets/CCE/960/sprockets%2F522c8e0801c33373edc7f5d3126a530c +0 -0
- data/spec/dummy/tmp/cache/assets/CCE/C50/sprockets%2Fe12774c2fea852112414bb379a71f31a +0 -0
- data/spec/dummy/tmp/cache/assets/CCF/390/sprockets%2F72dd112058cad36028c2450671ddf26d +0 -0
- data/spec/dummy/tmp/cache/assets/CD1/0B0/sprockets%2F5bf8f21172210208e5dce60265d40b9d +0 -0
- data/spec/dummy/tmp/cache/assets/CD1/620/sprockets%2F06a3eb05fcb4175a679d6084a06026a6 +0 -0
- data/spec/dummy/tmp/cache/assets/CD1/BD0/sprockets%2Fb2089774122944ac8c3abb32f70c23d3 +0 -0
- data/spec/dummy/tmp/cache/assets/CD3/460/sprockets%2F7f3f6802b0b309ed142d0b671c9640c4 +0 -0
- data/spec/dummy/tmp/cache/assets/CD4/050/sprockets%2F4c36a6e9e6874070516a6c40b0309daa +0 -0
- data/spec/dummy/tmp/cache/assets/CD4/D20/sprockets%2F40c6b1133a952429a7b8769c1d3c3dd0 +0 -0
- data/spec/dummy/tmp/cache/assets/CD7/B90/sprockets%2Fe3e49e4c1c68a1e32355620d1d3b7265 +0 -0
- data/spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/CD9/880/sprockets%2F2e8e3822ab8a2ce41cf39554226230d9 +0 -0
- data/spec/dummy/tmp/cache/assets/CD9/9B0/sprockets%2Fdc1f0447e4c5c2f990750b2f722c5900 +0 -0
- data/spec/dummy/tmp/cache/assets/CD9/DD0/sprockets%2Fe5774759168a731da1c1149ecf0e1b03 +0 -0
- data/spec/dummy/tmp/cache/assets/CDA/2B0/sprockets%2Fc3a13686484d2cdc5b859b2300b0d489 +0 -0
- data/spec/dummy/tmp/cache/assets/CDA/930/sprockets%2F7dd8506d171b15d410eb245f60b99b46 +0 -0
- data/spec/dummy/tmp/cache/assets/CDB/170/sprockets%2Ffd3d8740748be26004cf49b130680e1e +0 -0
- data/spec/dummy/tmp/cache/assets/CDB/630/sprockets%2Ffd1626fe1016c81d57217f7f80c4370a +0 -0
- data/spec/dummy/tmp/cache/assets/CDC/EB0/sprockets%2F627ab41907f375c3efc41a44e090d961 +0 -0
- data/spec/dummy/tmp/cache/assets/CDD/430/sprockets%2Fe201772e6124a4c0d53de19696ac8b94 +0 -0
- data/spec/dummy/tmp/cache/assets/CE0/190/sprockets%2F8d6df52167f36d9e1655f989e91699c7 +0 -0
- data/spec/dummy/tmp/cache/assets/CE0/CF0/sprockets%2Fea163522b70cf77176d95b4caa560939 +0 -0
- data/spec/dummy/tmp/cache/assets/CE1/250/sprockets%2Ffdc680a0d4383d37910e549ca96f5303 +0 -0
- data/spec/dummy/tmp/cache/assets/CE1/730/sprockets%2Fa1678837061e18d7aca0286c07acf676 +0 -0
- data/spec/dummy/tmp/cache/assets/CE2/9C0/sprockets%2F24939c09b831b5f057100fe4776dccf4 +0 -0
- data/spec/dummy/tmp/cache/assets/CE2/DA0/sprockets%2Ff3ac0c65e27949133e0ea9b8250a3977 +0 -0
- data/spec/dummy/tmp/cache/assets/CE2/E90/sprockets%2F442a112b6b94b9728d6fa0bc6f474694 +0 -0
- data/spec/dummy/tmp/cache/assets/CE3/1F0/sprockets%2Fe69a515d3a9d14c669be8871012a7d07 +0 -0
- data/spec/dummy/tmp/cache/assets/CE3/B20/sprockets%2F61ccc7dcd2082970836964ac01f54b96 +0 -0
- data/spec/dummy/tmp/cache/assets/CE4/580/sprockets%2F2296de52158bde693192f14282b5edf1 +0 -0
- data/spec/dummy/tmp/cache/assets/CE4/FD0/sprockets%2F4295ee9f678aa2db21f5b1565616a319 +0 -0
- data/spec/dummy/tmp/cache/assets/CE6/270/sprockets%2F2c98152560d18470fec8cf4c6829b4d0 +0 -0
- data/spec/dummy/tmp/cache/assets/CE6/7C0/sprockets%2Fa03a2c86ce6724be8542295e1cf24798 +0 -0
- data/spec/dummy/tmp/cache/assets/CE6/990/sprockets%2F02e1c54cebf6319465e469269b91ab66 +0 -0
- data/spec/dummy/tmp/cache/assets/CE7/A60/sprockets%2Ff58eee249aa167d23f8220087bb46684 +0 -0
- data/spec/dummy/tmp/cache/assets/CE9/9E0/sprockets%2F135480d497ed7e4884462dc0ef0b80d7 +0 -0
- data/spec/dummy/tmp/cache/assets/CEA/6D0/sprockets%2Fc95345583b2c6df7850cef943c5a0375 +0 -0
- data/spec/dummy/tmp/cache/assets/CEB/680/sprockets%2F67f0794ef8c0576d5c7da34f4437305a +0 -0
- data/spec/dummy/tmp/cache/assets/CEB/B20/sprockets%2F5c3535c9b266a5cb17824f5676a775dd +0 -0
- data/spec/dummy/tmp/cache/assets/CEB/B40/sprockets%2F1150bf8d912aa100a132251eefaf6045 +0 -0
- data/spec/dummy/tmp/cache/assets/CEB/D80/sprockets%2F8992063c286f1379f2075ebef3ae21c8 +0 -0
- data/spec/dummy/tmp/cache/assets/CED/A20/sprockets%2F38752bc804bdd87e3823be65866a0c87 +0 -0
- data/spec/dummy/tmp/cache/assets/CEF/960/sprockets%2F815667b28e33482c8f0ba479b72af5e9 +0 -0
- data/spec/dummy/tmp/cache/assets/CF1/C50/sprockets%2F57bd9ac92067ea01882feef075582758 +0 -0
- data/spec/dummy/tmp/cache/assets/CF2/6A0/sprockets%2F3f295ed908e399eaa764b3a187e52663 +0 -0
- data/spec/dummy/tmp/cache/assets/CF3/3A0/sprockets%2F6571249b82eb52e7c7e035c692df9b69 +0 -0
- data/spec/dummy/tmp/cache/assets/CF4/6F0/sprockets%2Fed96f92571224b862b84d7078b86ded3 +0 -0
- data/spec/dummy/tmp/cache/assets/CF7/F10/sprockets%2F8c45854ebd195b52cc42bf3f99996336 +0 -0
- data/spec/dummy/tmp/cache/assets/CF8/780/sprockets%2F8845b81ff27cdb57c835836c9f91a265 +0 -0
- data/spec/dummy/tmp/cache/assets/CF9/D00/sprockets%2F9da50f3d2073a00c62f35ca6c04a9561 +0 -0
- data/spec/dummy/tmp/cache/assets/CFA/C00/sprockets%2F455bb7218b44a4cc162b1ec574cb4044 +0 -0
- data/spec/dummy/tmp/cache/assets/CFB/210/sprockets%2F9104695bfbf9a9d4b94382e6e90487a9 +0 -0
- data/spec/dummy/tmp/cache/assets/CFB/CA0/sprockets%2F5fd863f7896134b607496c9b0c7b6d7f +0 -0
- data/spec/dummy/tmp/cache/assets/CFC/380/sprockets%2Fa7443cbd671446a589867dd5f4a4f989 +0 -0
- data/spec/dummy/tmp/cache/assets/D00/110/sprockets%2F6a6353b7723a8b21708e0fbfe04bd422 +0 -0
- data/spec/dummy/tmp/cache/assets/D00/470/sprockets%2Fedd35336ed5f26cb44251532813b0c4c +0 -0
- data/spec/dummy/tmp/cache/assets/D00/B50/sprockets%2F3c4e003ba820ca79b7c153287a7f8a04 +0 -0
- data/spec/dummy/tmp/cache/assets/D03/630/sprockets%2F5d8da32dba6a7be70426a1d554773701 +0 -0
- data/spec/dummy/tmp/cache/assets/D03/A90/sprockets%2F4b6f4d85185cdd8027a202c7d104a65b +0 -0
- data/spec/dummy/tmp/cache/assets/D04/170/sprockets%2F76ab1dc02e6c7618852708a1e05a2df3 +0 -0
- data/spec/dummy/tmp/cache/assets/D04/480/sprockets%2F8bd8f10500b21d2f9d94e4cd1401c936 +0 -0
- data/spec/dummy/tmp/cache/assets/D05/8D0/sprockets%2F319f8f235f452343f1ebf03cb262d23d +0 -0
- data/spec/dummy/tmp/cache/assets/D07/120/sprockets%2Fe65cdfadc710ed84710627360a50a738 +0 -0
- data/spec/dummy/tmp/cache/assets/D07/BE0/sprockets%2F41e21b4d2cbf56b9933e8239ea0e7032 +0 -0
- data/spec/dummy/tmp/cache/assets/D08/BD0/sprockets%2F22c1dd6fa27601451d5cf6c840e0668e +0 -0
- data/spec/dummy/tmp/cache/assets/D09/BF0/sprockets%2F9e6bca5d26f50d9484385d51ba04312c +0 -0
- data/spec/dummy/tmp/cache/assets/D09/D00/sprockets%2F8d94b71c7c7b5e05166e15ccd0a12447 +0 -0
- data/spec/dummy/tmp/cache/assets/D0B/210/sprockets%2Fb95ce127097fba0e4019f633e91b730d +0 -0
- data/spec/dummy/tmp/cache/assets/D0C/B80/sprockets%2Fc4891b60864cf8457af101c9a211db8d +0 -0
- data/spec/dummy/tmp/cache/assets/D0D/060/sprockets%2F03c3bda8931e83e888ea8c95106300ae +0 -0
- data/spec/dummy/tmp/cache/assets/D0D/5B0/sprockets%2Fd8056958f488bbbea304151530ea4cb9 +0 -0
- data/spec/dummy/tmp/cache/assets/D0E/920/sprockets%2F47b207ec61677ee25b0001de3f96f84b +0 -0
- data/spec/dummy/tmp/cache/assets/D0E/E60/sprockets%2F4d8960a63bdca7075662239ef4b1de14 +0 -0
- data/spec/dummy/tmp/cache/assets/D0F/E80/sprockets%2Fb13bf7ddc4ee98083c79011ad7271275 +0 -0
- data/spec/dummy/tmp/cache/assets/D10/CE0/sprockets%2F602cdc3188bd940ab8ecc88e62390291 +0 -0
- data/spec/dummy/tmp/cache/assets/D10/EF0/sprockets%2F413d56da9f4db84a99fa73b11d196142 +0 -0
- data/spec/dummy/tmp/cache/assets/D11/340/sprockets%2F1fee97021c532d76bb64f4f19e8a1813 +0 -0
- data/spec/dummy/tmp/cache/assets/D11/B00/sprockets%2F97aa86f14ae420f87553523e340acdf8 +0 -0
- data/spec/dummy/tmp/cache/assets/D11/E50/sprockets%2Fe384d6dc634ba600219e284f31bf991f +0 -0
- data/spec/dummy/tmp/cache/assets/D11/F80/sprockets%2F48961522f6cd1a15f2fe6e25f1b37a75 +0 -0
- data/spec/dummy/tmp/cache/assets/D15/0A0/sprockets%2F6b913f0e2d4e3355989bbc14650ed8d4 +0 -0
- data/spec/dummy/tmp/cache/assets/D15/210/sprockets%2F79b3efa76951f9a0b25a1df07751d672 +0 -0
- data/spec/dummy/tmp/cache/assets/D15/750/sprockets%2F8effdd3e668a4036260a3e370f3b6657 +0 -0
- data/spec/dummy/tmp/cache/assets/D15/F10/sprockets%2Fc132f823916bcefc67d546d719dd4351 +0 -0
- data/spec/dummy/tmp/cache/assets/D16/790/sprockets%2F816a88991903fab936c1de6a6bd1e280 +0 -0
- data/spec/dummy/tmp/cache/assets/D16/F20/sprockets%2Fe3c050514d0e8c750d2ac977a97a69e9 +0 -0
- data/spec/dummy/tmp/cache/assets/D17/450/sprockets%2Ffac8560813729f008ca8b09f4a76e0e9 +0 -0
- data/spec/dummy/tmp/cache/assets/D17/710/sprockets%2Ffa49fb6823d466e79a195e0cd71340c5 +0 -0
- data/spec/dummy/tmp/cache/assets/D18/3D0/sprockets%2Fef037f0fc7cb0f80478b5465f564246d +0 -0
- data/spec/dummy/tmp/cache/assets/D1A/D30/sprockets%2F815a5177e9edba0c5c996182ef1b3675 +0 -0
- data/spec/dummy/tmp/cache/assets/D1C/250/sprockets%2F22f9883fa2d48e35e7cf9407a9a391b1 +0 -0
- data/spec/dummy/tmp/cache/assets/D1C/AE0/sprockets%2F64f4a3d1ef3f457e9117c857dab97073 +0 -0
- data/spec/dummy/tmp/cache/assets/D1E/AA0/sprockets%2F5c8741a556bc955cd36e61c88582b6dc +0 -0
- data/spec/dummy/tmp/cache/assets/D20/4E0/sprockets%2F8996e772cbbc3462a4578bed8a07880b +0 -0
- data/spec/dummy/tmp/cache/assets/D20/710/sprockets%2Fa6ac072e74c49f8c7f1c93313976a6e9 +0 -0
- data/spec/dummy/tmp/cache/assets/D20/980/sprockets%2F7245e0b92e389903ef6bb8f9b263d1e8 +0 -0
- data/spec/dummy/tmp/cache/assets/D20/C60/sprockets%2F0acbe1111c581802127531ef0caea7b9 +0 -0
- data/spec/dummy/tmp/cache/assets/D21/010/sprockets%2F8424ac59b80ac6c7f7d8534ce1935e87 +0 -0
- data/spec/dummy/tmp/cache/assets/D25/A40/sprockets%2F3203df91221911b0a35e3dd1f954abbd +0 -0
- data/spec/dummy/tmp/cache/assets/D27/350/sprockets%2Fc5cadc26988e3e7544817fa817fc8806 +0 -0
- data/spec/dummy/tmp/cache/assets/D27/900/sprockets%2F64be39c8e378779e3323d4925ac94eaf +0 -0
- data/spec/dummy/tmp/cache/assets/D27/A30/sprockets%2F1d15efb1ce5c9a479c87919d58b69571 +0 -0
- data/spec/dummy/tmp/cache/assets/D29/350/sprockets%2Fb8c14bbb2c24d881ba2a54d56715031f +0 -0
- data/spec/dummy/tmp/cache/assets/D2C/720/sprockets%2F293d8f7e19eefc1f7d397417e077467b +0 -0
- data/spec/dummy/tmp/cache/assets/D2D/F00/sprockets%2Fe7c0aa671a08e35e084fd1dd00330a89 +0 -0
- data/spec/dummy/tmp/cache/assets/D2F/520/sprockets%2Fea2308e8add6880c1c4d47040ab710d7 +0 -0
- data/spec/dummy/tmp/cache/assets/D2F/AD0/sprockets%2Fc8087368a419b7a2a010173ebaca8d2f +0 -0
- data/spec/dummy/tmp/cache/assets/D30/480/sprockets%2Feb011f46c64dbefb1f7e21329644c240 +0 -0
- data/spec/dummy/tmp/cache/assets/D31/9C0/sprockets%2Fbd102a4f5a4985c3519dd6ab0295a1c6 +0 -0
- data/spec/dummy/tmp/cache/assets/D32/500/sprockets%2F6927df5a24d91c75d001e2b5600ab8be +0 -0
- data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/D33/910/sprockets%2F18789ea0bbe0ac29a960b15ab082638b +0 -0
- data/spec/dummy/tmp/cache/assets/D33/F10/sprockets%2F44e1ef2cd8b518f7d2411ce56a11440f +0 -0
- data/spec/dummy/tmp/cache/assets/D34/B10/sprockets%2F810a3d507db1d548a1d314c9cc59c66b +0 -0
- data/spec/dummy/tmp/cache/assets/D35/030/sprockets%2F30d01c0eb55160b6f97568b2bb16dfc9 +0 -0
- data/spec/dummy/tmp/cache/assets/D35/260/sprockets%2Fd02b5f0131a65460b9bd146dd7e98f3a +0 -0
- data/spec/dummy/tmp/cache/assets/D35/7C0/sprockets%2Ff536a2606eaf7d542c0985104cb62baf +0 -0
- data/spec/dummy/tmp/cache/assets/D35/F00/sprockets%2F8e7f22358123b7eb5e21d17f442ce0ac +0 -0
- data/spec/dummy/tmp/cache/assets/D36/3F0/sprockets%2F845a64b2a4fdd702bb8d325cc6715a28 +0 -0
- data/spec/dummy/tmp/cache/assets/D36/4C0/sprockets%2Fba10098fc535146ed4fb9744cf262a0c +0 -0
- data/spec/dummy/tmp/cache/assets/D36/E20/sprockets%2Fa6d48550d8c46cb4a91e2b1aa147647c +0 -0
- data/spec/dummy/tmp/cache/assets/D37/300/sprockets%2F2d0e503e6a7c7c7fdc9912501b2f6b43 +0 -0
- data/spec/dummy/tmp/cache/assets/D37/890/sprockets%2F4728d0522ff8b44c0230bc9feb46be25 +0 -0
- data/spec/dummy/tmp/cache/assets/D37/FF0/sprockets%2F96841ca4cfae32c515077f3f5fc303b2 +0 -0
- data/spec/dummy/tmp/cache/assets/D38/B00/sprockets%2F32615e65544417aa3b3f46beb86d8bab +0 -0
- data/spec/dummy/tmp/cache/assets/D38/EE0/sprockets%2Ff84b1f15209a63ac21fbca89354a466e +0 -0
- data/spec/dummy/tmp/cache/assets/D39/4A0/sprockets%2F021a93e3443aaeee934d31ace59b5298 +0 -0
- data/spec/dummy/tmp/cache/assets/D3B/750/sprockets%2F82e2c0b56fb8a696d2d21914ee435bb3 +0 -0
- data/spec/dummy/tmp/cache/assets/D3C/840/sprockets%2Fc6202ec91d567a85bd3d46dc43ea9108 +0 -0
- data/spec/dummy/tmp/cache/assets/D3C/DF0/sprockets%2F8c7116c8ff734a0445d01f6cc765aa2f +0 -0
- data/spec/dummy/tmp/cache/assets/D3D/CF0/sprockets%2F91b40ebc02b8e92d0c44af437f7a7747 +0 -0
- data/spec/dummy/tmp/cache/assets/D3D/EC0/sprockets%2F1aa82cb99ef076aea10d472b30a58979 +0 -0
- data/spec/dummy/tmp/cache/assets/D3E/6E0/sprockets%2Fe326381907f18ac9ebbbc4de4e551281 +0 -0
- data/spec/dummy/tmp/cache/assets/D3E/F00/sprockets%2Fc7cbb28f23435b47b55562633ebfd3e5 +0 -0
- data/spec/dummy/tmp/cache/assets/D40/840/sprockets%2F9fef661284bc4c706438d2629cada3b2 +0 -0
- data/spec/dummy/tmp/cache/assets/D40/BD0/sprockets%2Ff846b62ec1982fc9a08d8a5390bd2c11 +0 -0
- data/spec/dummy/tmp/cache/assets/D41/470/sprockets%2Fe3b48827fa5c8d5d6131a8632e2a6fe2 +0 -0
- data/spec/dummy/tmp/cache/assets/D42/240/sprockets%2Fb0a17667d30992ced7cb88ab27592e3a +0 -0
- data/spec/dummy/tmp/cache/assets/D43/A10/sprockets%2F8442b5fecbe0cef217a02cb732879678 +0 -0
- data/spec/dummy/tmp/cache/assets/D44/030/sprockets%2Fdc7a0bf839ad6259b834663cde80e522 +0 -0
- data/spec/dummy/tmp/cache/assets/D44/5E0/sprockets%2F68a138c150ab5c4805673fee71d7ffa8 +0 -0
- data/spec/dummy/tmp/cache/assets/D44/910/sprockets%2Ff64342f6e93f0fe77fb584e418ea00b0 +0 -0
- data/spec/dummy/tmp/cache/assets/D44/A20/sprockets%2Ff3fb7b03f18b606976ef357b5452faa4 +0 -0
- data/spec/dummy/tmp/cache/assets/D44/E90/sprockets%2F05cfc0bf7c9938963d1d1c63248db80d +0 -0
- data/spec/dummy/tmp/cache/assets/D45/C30/sprockets%2Fcc744877558178a3adb77c441cadce70 +0 -0
- data/spec/dummy/tmp/cache/assets/D47/A90/sprockets%2Fe7ca382b607c595ea6505853f7fb63da +0 -0
- data/spec/dummy/tmp/cache/assets/D47/CC0/sprockets%2F78f1463961f6712fa6a254aece0e5e6f +0 -0
- data/spec/dummy/tmp/cache/assets/D48/160/sprockets%2F32bae66fd65ce3643efb543182f2e885 +0 -0
- data/spec/dummy/tmp/cache/assets/D49/1F0/sprockets%2F773b56f87127c6605e7d1d3faf2b6af6 +0 -0
- data/spec/dummy/tmp/cache/assets/D49/9B0/sprockets%2F6d919ff7440d2b2a2f7e8912ddd8d640 +0 -0
- data/spec/dummy/tmp/cache/assets/D49/A10/sprockets%2Fc4656bd995a6f297c26d19b13aadb963 +0 -0
- data/spec/dummy/tmp/cache/assets/D4C/980/sprockets%2F813d8d2c9dfa2b6bb4907726dc4e9575 +0 -0
- data/spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/cache/assets/D4F/EC0/sprockets%2Ffb723a95fdf3f22571f8d2a5be657973 +0 -0
- data/spec/dummy/tmp/cache/assets/D50/D70/sprockets%2Fe2a3e6c95b11e0801a4eebae3a026026 +0 -0
- data/spec/dummy/tmp/cache/assets/D51/400/sprockets%2Ff5e433d8a31e80985b75ce598de236be +0 -0
- data/spec/dummy/tmp/cache/assets/D53/810/sprockets%2Fcea155118675976bd5fe591de76c7d2f +0 -0
- data/spec/dummy/tmp/cache/assets/D55/780/sprockets%2Ff2b8306673b8de97a955ad0bf9f59f07 +0 -0
- data/spec/dummy/tmp/cache/assets/D55/DF0/sprockets%2F65c7453638b948fce2c5da092f8d8b9c +0 -0
- data/spec/dummy/tmp/cache/assets/D56/5F0/sprockets%2Fde5fb7392753dffc426572fad96298f0 +0 -0
- data/spec/dummy/tmp/cache/assets/D57/C80/sprockets%2Fc48670f82e2725ba8a976ef89dbd14f7 +0 -0
- data/spec/dummy/tmp/cache/assets/D57/E80/sprockets%2F936422a2cde24ab55b13e1b7bc0477ab +0 -0
- data/spec/dummy/tmp/cache/assets/D58/A60/sprockets%2Ffbd202c6ff799289e8487dc6408c3fc3 +0 -0
- data/spec/dummy/tmp/cache/assets/D58/EB0/sprockets%2F711fd84e41ed999c5d4c5a257e4e69c8 +0 -0
- data/spec/dummy/tmp/cache/assets/D59/8C0/sprockets%2F669f568485ea47c9cdc9deb9c5430e60 +0 -0
- data/spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/D5B/040/sprockets%2F1fe2cdf73111b418f2050ffd24438cab +0 -0
- data/spec/dummy/tmp/cache/assets/D5C/710/sprockets%2F9427d05cee2caa721241a25a9af1d08f +0 -0
- data/spec/dummy/tmp/cache/assets/D5C/CC0/sprockets%2Faa8bf6de211f2765b0a26f112b971f0c +0 -0
- data/spec/dummy/tmp/cache/assets/D5E/000/sprockets%2Fd6ed282a19da1494e200cb546dd06fa1 +0 -0
- data/spec/dummy/tmp/cache/assets/D5E/2C0/sprockets%2F3bcd6824fda2af4d4271cf241064aa66 +0 -0
- data/spec/dummy/tmp/cache/assets/D5E/FA0/sprockets%2Fc81c371ae2d61a6aa1708262fba79e0d +0 -0
- data/spec/dummy/tmp/cache/assets/D5F/8D0/sprockets%2F81d09e3bf818cc04391abc11af2e551d +0 -0
- data/spec/dummy/tmp/cache/assets/D61/1F0/sprockets%2F0c7a6176d2fc4db00bb9a74d36380fe1 +0 -0
- data/spec/dummy/tmp/cache/assets/D61/E60/sprockets%2F301aede3913de3c54c91b65cf2bd3381 +0 -0
- data/spec/dummy/tmp/cache/assets/D65/AD0/sprockets%2Fcc53fff930eaf306c15c4568cb265c00 +0 -0
- data/spec/dummy/tmp/cache/assets/D67/270/sprockets%2Fd465b64d071d2bdcdfa5cb9a67941502 +0 -0
- data/spec/dummy/tmp/cache/assets/D67/BC0/sprockets%2F35d2c2b45981ade5a2db2a9c7f37a615 +0 -0
- data/spec/dummy/tmp/cache/assets/D67/C20/sprockets%2F0d30bf27e5f74bbd85f313cb8d3c4623 +0 -0
- data/spec/dummy/tmp/cache/assets/D68/9E0/sprockets%2F98ab9a84a3916f0db147a06dbadb7416 +0 -0
- data/spec/dummy/tmp/cache/assets/D68/E40/sprockets%2Fdf17b1ee801b453787c73dd6be12e04b +0 -0
- data/spec/dummy/tmp/cache/assets/D69/8E0/sprockets%2F843b073aacad148a35d4932bd79d16fe +0 -0
- data/spec/dummy/tmp/cache/assets/D69/F90/sprockets%2F6a0795b7b38bd7e6142cd1b88211dade +0 -0
- data/spec/dummy/tmp/cache/assets/D6A/2D0/sprockets%2F827606b3fb0bf38eda9c52bbb398421c +0 -0
- data/spec/dummy/tmp/cache/assets/D6A/950/sprockets%2F429b1806cb7580ebf29f9a12c33cbea6 +0 -0
- data/spec/dummy/tmp/cache/assets/D6C/9C0/sprockets%2Fd66bdf546164ba223e20f56b5591ddfd +0 -0
- data/spec/dummy/tmp/cache/assets/D6D/DA0/sprockets%2Fac936bf40b42227a2bf9d474ae9ec149 +0 -0
- data/spec/dummy/tmp/cache/assets/D6E/100/sprockets%2F49c09b0dc6ff93d40a75cb21fe290f63 +0 -0
- data/spec/dummy/tmp/cache/assets/D6E/440/sprockets%2Fea163e80716638beecfab4232ea589e2 +0 -0
- data/spec/dummy/tmp/cache/assets/D6F/310/sprockets%2F624b651d37f7ec0c563c446fbf8afb32 +0 -0
- data/spec/dummy/tmp/cache/assets/D6F/5B0/sprockets%2F5dcc801a7a6c340c5baf525839f9b8b6 +0 -0
- data/spec/dummy/tmp/cache/assets/D6F/6A0/sprockets%2F049e1a560dbb9e05ea8c80f819f87ab0 +0 -0
- data/spec/dummy/tmp/cache/assets/D70/B00/sprockets%2F268e2650ac2842bedc9589fa50dea3a7 +0 -0
- data/spec/dummy/tmp/cache/assets/D71/A70/sprockets%2F4f10f5dd56c8a3ff78c460bbe3723a39 +0 -0
- data/spec/dummy/tmp/cache/assets/D71/D90/sprockets%2F6dbe8400ecd795a5d35d88b7761e0b0c +0 -0
- data/spec/dummy/tmp/cache/assets/D72/0A0/sprockets%2Fea31903c67f4ba197e25387b5dadef18 +0 -0
- data/spec/dummy/tmp/cache/assets/D75/450/sprockets%2F255ea2d250f249ac9c01fef695e8ab69 +0 -0
- data/spec/dummy/tmp/cache/assets/D75/7C0/sprockets%2F6e3687d47dcb4d2d533beb13097fe0f7 +0 -0
- data/spec/dummy/tmp/cache/assets/D75/900/sprockets%2F74b847bd8ff90740d31a43ad3787adbf +0 -0
- data/spec/dummy/tmp/cache/assets/D76/570/sprockets%2Feedc30392824106dbedb037f86e56fe9 +0 -0
- data/spec/dummy/tmp/cache/assets/D76/E00/sprockets%2F50fed4db42859966abf7ca704efe3801 +0 -0
- data/spec/dummy/tmp/cache/assets/D77/B30/sprockets%2F946cf2f17c7eb41037f9ee08ad67ec40 +0 -0
- data/spec/dummy/tmp/cache/assets/D78/2F0/sprockets%2F3c61f8915b8f717b1de788e6ecad122c +0 -0
- data/spec/dummy/tmp/cache/assets/D78/A80/sprockets%2Ff318eea7f126a77324697d6c64cefc1b +0 -0
- data/spec/dummy/tmp/cache/assets/D78/F10/sprockets%2Fa2d995664d1a9bf976c1bfbbb90f8710 +0 -0
- data/spec/dummy/tmp/cache/assets/D7A/190/sprockets%2F3db76fe68ad94be075dbc7524068f73a +0 -0
- data/spec/dummy/tmp/cache/assets/D7B/670/sprockets%2F8d4d09ed03575bc962fc960a80daf89b +0 -0
- data/spec/dummy/tmp/cache/assets/D7B/A10/sprockets%2F115c6bdb61feb003b1ec5a22b650dc70 +0 -0
- data/spec/dummy/tmp/cache/assets/D7C/480/sprockets%2F838cc81e53dac547f4677fb51536deea +0 -0
- data/spec/dummy/tmp/cache/assets/D7D/300/sprockets%2F99a2d55cdabf50d15798e04ef48c268d +0 -0
- data/spec/dummy/tmp/cache/assets/D7E/580/sprockets%2Fc05df808e9f42954a2ac6d77f4fa37d6 +0 -0
- data/spec/dummy/tmp/cache/assets/D7E/7B0/sprockets%2Ff3af9cd747e409763dc5f54a287a28bd +0 -0
- data/spec/dummy/tmp/cache/assets/D7E/C10/sprockets%2F747c98c3cc7494a62dd882752adffb2b +0 -0
- data/spec/dummy/tmp/cache/assets/D7E/C30/sprockets%2F769700a5e78898ce10adfeb708dd8d3a +0 -0
- data/spec/dummy/tmp/cache/assets/D83/2E0/sprockets%2Fda0e7087dd71899a9190c915cfec3f7f +0 -0
- data/spec/dummy/tmp/cache/assets/D84/730/sprockets%2Fd1594df6eb925fad655388ed16ca3e97 +0 -0
- data/spec/dummy/tmp/cache/assets/D85/5D0/sprockets%2Fde362e334a475cfca1a30fa5b713b43a +0 -0
- data/spec/dummy/tmp/cache/assets/D8C/520/sprockets%2F221cd58a042baac534d27e4cfedc1188 +0 -0
- data/spec/dummy/tmp/cache/assets/D8D/330/sprockets%2Feebcc6d7139d702bbca0b9503297a40b +0 -0
- data/spec/dummy/tmp/cache/assets/D8E/B60/sprockets%2F4b0c2be5008d0a0cfabff66396d54e24 +0 -0
- data/spec/dummy/tmp/cache/assets/D8F/730/sprockets%2Fa1baa64252215c3ae8ad0f3e53a79c9f +0 -0
- data/spec/dummy/tmp/cache/assets/D92/3D0/sprockets%2Fbcbe263bbf11dc9214435b9fdb64661b +0 -0
- data/spec/dummy/tmp/cache/assets/D93/AE0/sprockets%2F2b6352ed136a4ec37bd8c052bd4cb94e +0 -0
- data/spec/dummy/tmp/cache/assets/D95/2A0/sprockets%2F0400dd7cb35156becbbe56d21d9be776 +0 -0
- data/spec/dummy/tmp/cache/assets/D96/CA0/sprockets%2F9ddd0fc49b5aa172cf27ea22f1007f93 +0 -0
- data/spec/dummy/tmp/cache/assets/D97/520/sprockets%2Fea2442ae4caddb758dfb1964c601b476 +0 -0
- data/spec/dummy/tmp/cache/assets/D97/5B0/sprockets%2F7298f2202fb3b32eb8d082e3ed5add3d +0 -0
- data/spec/dummy/tmp/cache/assets/D9A/1B0/sprockets%2Fcd5e53be61cba95b5b0b81865b54d1f6 +0 -0
- data/spec/dummy/tmp/cache/assets/D9A/610/sprockets%2F84ede7f893018d9bea835f68c8f9ff83 +0 -0
- data/spec/dummy/tmp/cache/assets/D9B/5F0/sprockets%2Fb6ae4b74a9de2d8e0301a3c60099f9fb +0 -0
- data/spec/dummy/tmp/cache/assets/D9B/860/sprockets%2Fbb235cfe35b6451f6e32ffd271657eaa +0 -0
- data/spec/dummy/tmp/cache/assets/D9C/240/sprockets%2F5f68fb3f496c391c16aba45eca35ac16 +0 -0
- data/spec/dummy/tmp/cache/assets/D9E/CB0/sprockets%2Ff0efe0ab6bd753a8bb4481e46243d77f +0 -0
- data/spec/dummy/tmp/cache/assets/D9F/240/sprockets%2Fb49cb72a0d3c5acc716f869b7e1b82e4 +0 -0
- data/spec/dummy/tmp/cache/assets/DA1/2F0/sprockets%2F38aba5d40f6c8f55628383f1bee42cce +0 -0
- data/spec/dummy/tmp/cache/assets/DA1/610/sprockets%2F8e1affe8d3aaf50203f38815fbfe3276 +0 -0
- data/spec/dummy/tmp/cache/assets/DA2/080/sprockets%2Fbd60c499c297fc4decc19c930d6a25d1 +0 -0
- data/spec/dummy/tmp/cache/assets/DA3/780/sprockets%2Fff91edf7359e8b136482202aa7aeb4df +0 -0
- data/spec/dummy/tmp/cache/assets/DA5/0A0/sprockets%2F7a4b5928cec69ab65afff309a04d6b47 +0 -0
- data/spec/dummy/tmp/cache/assets/DA6/440/sprockets%2F5a10f4bab16828e582e57cdeef95c9b3 +0 -0
- data/spec/dummy/tmp/cache/assets/DA8/9D0/sprockets%2F27f6626356c7beb5f88ae2abfd318df2 +0 -0
- data/spec/dummy/tmp/cache/assets/DA9/BF0/sprockets%2Fc59f8f7bf494fe030610bc86bb7cc5e5 +0 -0
- data/spec/dummy/tmp/cache/assets/DAB/400/sprockets%2F52eed96b338eff526fc0198c61dd09eb +0 -0
- data/spec/dummy/tmp/cache/assets/DAE/4E0/sprockets%2F88cc3ab99c608879dd56164dbcc2ccb7 +0 -0
- data/spec/dummy/tmp/cache/assets/DAF/E90/sprockets%2Fc75bc7e2c949f7cfeb89b5e422352ea6 +0 -0
- data/spec/dummy/tmp/cache/assets/DB0/C60/sprockets%2Fdfb9bb691a396957a05ef79dea41d8c4 +0 -0
- data/spec/dummy/tmp/cache/assets/DB2/D70/sprockets%2Fe03d9b5c98dae04fa8eac8fb68697390 +0 -0
- data/spec/dummy/tmp/cache/assets/DB5/040/sprockets%2F9a9da5df88713663b9fbc945facca891 +0 -0
- data/spec/dummy/tmp/cache/assets/DB5/860/sprockets%2Facf25fab3016425a0e03c9d190fd4eac +0 -0
- data/spec/dummy/tmp/cache/assets/DBE/320/sprockets%2Faec8daa017ce18f166a19c1771dbfb03 +0 -0
- data/spec/dummy/tmp/cache/assets/DBF/D20/sprockets%2F3aea2f3e237abe2a9ed20b93f11d428f +0 -0
- data/spec/dummy/tmp/cache/assets/DC0/7B0/sprockets%2F8cb4d6e0c80cbf4dced28b20f07137d0 +0 -0
- data/spec/dummy/tmp/cache/assets/DC3/230/sprockets%2Fdf52e72eb73be91eccc60182191aed0b +0 -0
- data/spec/dummy/tmp/cache/assets/DC3/AC0/sprockets%2Fe29911eb34fdf4b710dd0d2c2cf24bc9 +0 -0
- data/spec/dummy/tmp/cache/assets/DC4/090/sprockets%2F7542f412d4caefe4f471bacf0c5861ca +0 -0
- data/spec/dummy/tmp/cache/assets/DC4/630/sprockets%2F4e84eafec121a136fcec3546b921eb6b +0 -0
- data/spec/dummy/tmp/cache/assets/DC5/EF0/sprockets%2F1c21100cd8e65c7f3fdcab61c5f77b9a +0 -0
- data/spec/dummy/tmp/cache/assets/DC7/A10/sprockets%2F84a8af0fcbf401864e1ae5bf092cba94 +0 -0
- data/spec/dummy/tmp/cache/assets/DC8/110/sprockets%2Faf09fc16a29e34c256dbbfa80a44b97b +0 -0
- data/spec/dummy/tmp/cache/assets/DCA/AD0/sprockets%2Fc5a76d97d72e0f35cb6aa2ea3f52c9c0 +0 -0
- data/spec/dummy/tmp/cache/assets/DCB/630/sprockets%2F0a6fda53cef15b3241be6457ac8b79ee +0 -0
- data/spec/dummy/tmp/cache/assets/DCC/AD0/sprockets%2Fcc866a8b1e1e8bf0d1470dcf7a09d72d +0 -0
- data/spec/dummy/tmp/cache/assets/DCD/EB0/sprockets%2F4f77f509126ecbced7ea2a5ab290c8d4 +0 -0
- data/spec/dummy/tmp/cache/assets/DCE/070/sprockets%2Fb6ddeed67c9ebb1834d6252ef0360d1f +0 -0
- data/spec/dummy/tmp/cache/assets/DCF/180/sprockets%2F9b325ef8af6f3d73b2fae1ddc62e2390 +0 -0
- data/spec/dummy/tmp/cache/assets/DCF/470/sprockets%2F2cfb3b8dd618a3985ac031db4fff871d +0 -0
- data/spec/dummy/tmp/cache/assets/DCF/8E0/sprockets%2F93e5d1b5dbfb40c3ad83692be9bb4e83 +0 -0
- data/spec/dummy/tmp/cache/assets/DCF/EB0/sprockets%2F02b4dd6785efb5ededa709d644a41ef1 +0 -0
- data/spec/dummy/tmp/cache/assets/DD1/4A0/sprockets%2Fde773ef01f38c9badc18b84c8022fb9a +0 -0
- data/spec/dummy/tmp/cache/assets/DD2/380/sprockets%2Fb97cfae90eb6314406519cda89a8dabe +0 -0
- data/spec/dummy/tmp/cache/assets/DD5/800/sprockets%2Ffda6208e29dc706ed387dcf6fbd062c5 +0 -0
- data/spec/dummy/tmp/cache/assets/DD8/410/sprockets%2Fa02603cca05ea0be3bda36fcdd30c841 +0 -0
- data/spec/dummy/tmp/cache/assets/DD8/D30/sprockets%2Feceaf7dce3295f2be5122df84fc59912 +0 -0
- data/spec/dummy/tmp/cache/assets/DDB/310/sprockets%2Facd5ff0e0a2d8c85034e6e0ed98ec988 +0 -0
- data/spec/dummy/tmp/cache/assets/DDB/4D0/sprockets%2F266a8cc69e818d1ddffe2c3b08456fbf +0 -0
- data/spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/DE1/DB0/sprockets%2F36ef78dc8a94f2c9b95babd318aa87c8 +0 -0
- data/spec/dummy/tmp/cache/assets/DE1/F00/sprockets%2Fb9c4dd7fc3ee2ef6c9fa0834636569cc +0 -0
- data/spec/dummy/tmp/cache/assets/DE4/140/sprockets%2F139e4ab85d1aacb22c115fa136afdc8a +0 -0
- data/spec/dummy/tmp/cache/assets/DE8/890/sprockets%2Fb5b832aab2d232dbfbf2175b43dc7e5a +0 -0
- data/spec/dummy/tmp/cache/assets/DEB/110/sprockets%2F2dbdab0ce5babca645cdb5780004f875 +0 -0
- data/spec/dummy/tmp/cache/assets/DEF/D70/sprockets%2Fd2dd8561afb084ce11c38ca7a6d0afe2 +0 -0
- data/spec/dummy/tmp/cache/assets/DF0/250/sprockets%2F13d5b48ac25fae3b5fbf815dbeda0624 +0 -0
- data/spec/dummy/tmp/cache/assets/DF1/1B0/sprockets%2F2b1bc202f9a338942edbccb2cfef0d67 +0 -0
- data/spec/dummy/tmp/cache/assets/DF1/DB0/sprockets%2Fdcf49a5ce11aa5e31de0cfb78c0f1905 +0 -0
- data/spec/dummy/tmp/cache/assets/DF2/2E0/sprockets%2F4770759c4a66e996f4fded83f6ddfddd +0 -0
- data/spec/dummy/tmp/cache/assets/DF4/2F0/sprockets%2F1e83ae0cfdcae29ad98466b1a66d20ac +0 -0
- data/spec/dummy/tmp/cache/assets/DF6/0E0/sprockets%2F85b10db6e1afe643aba6d396abdd77f0 +0 -0
- data/spec/dummy/tmp/cache/assets/DF6/420/sprockets%2Ff1b2c8c5be5f2d33de5d540a3e62ca8f +0 -0
- data/spec/dummy/tmp/cache/assets/DF8/900/sprockets%2Fd924dea4cc364aedeea287029ccda435 +0 -0
- data/spec/dummy/tmp/cache/assets/DF9/E10/sprockets%2Fba2ada9f607edea6b98cc72a4e70d433 +0 -0
- data/spec/dummy/tmp/cache/assets/DFC/C30/sprockets%2Fb50a07cb30b0bd0eec8e98e5de79d65d +0 -0
- data/spec/dummy/tmp/cache/assets/DFF/0D0/sprockets%2Fc3ec68c48db663fa45ab4d6fe33dcf13 +0 -0
- data/spec/dummy/tmp/cache/assets/E00/2B0/sprockets%2Fffeda2454f8128abad731f07d7ea88da +0 -0
- data/spec/dummy/tmp/cache/assets/E01/B70/sprockets%2Fd6defcb54f67eac14ccf6203f36ad954 +0 -0
- data/spec/dummy/tmp/cache/assets/E02/6E0/sprockets%2F63d6a5cdb8cefa64ef76b5c6e0fd3720 +0 -0
- data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/E07/8B0/sprockets%2F426ebeaf61b095557dfab89fd2e5e4eb +0 -0
- data/spec/dummy/tmp/cache/assets/E08/BB0/sprockets%2Fefac99af1af28543aef6fb607faa4973 +0 -0
- data/spec/dummy/tmp/cache/assets/E08/F10/sprockets%2F8cc67880efb9b750c30ac8a7abe58fbf +0 -0
- data/spec/dummy/tmp/cache/assets/E0D/070/sprockets%2F0e7ef9a5978dcc6b1abce678ef836c0a +0 -0
- data/spec/dummy/tmp/cache/assets/E14/8E0/sprockets%2Fb8d902ffcf8758fde63d0fa579ba6d4e +0 -0
- data/spec/dummy/tmp/cache/assets/E17/EF0/sprockets%2Fa291ad64a26afd055dfadabbdf03f154 +0 -0
- data/spec/dummy/tmp/cache/assets/E1C/D80/sprockets%2F4b95bfa6daa08c4eb0aa541a37e4d2fe +0 -0
- data/spec/dummy/tmp/cache/assets/E20/980/sprockets%2Fc90a064de7a16bb06df5b9ad4c1ed8ab +0 -0
- data/spec/dummy/tmp/cache/assets/E38/C40/sprockets%2F98dfe383fba3e8b185bcc47a6e1ebfc5 +0 -0
- data/spec/dummy/tmp/cache/assets/E53/950/sprockets%2Fffd7c2c672c3f8e8f87dff7919aeccd9 +0 -0
- data/spec/dummy/tmp/cache/assets/E56/0F0/sprockets%2Fc8da7a5dae8a9e6b0de61b381fec0b3c +0 -0
- data/spec/dummy/tmp/cache/assets/E58/310/sprockets%2Fecdb86ebf64d9140f01a903fbfad8cda +0 -0
- data/spec/dummy/tmp/cache/assets/E63/9A0/sprockets%2F6d75fdbce8bba3e734dc5fea6f2171ef +0 -0
- data/spec/dummy/tmp/cache/assets/E6E/260/sprockets%2Fd9f8ab8b91ef582cc6c99a3ba0dedfe6 +0 -0
- data/spec/dummy/tmp/cache/assets/E85/310/sprockets%2Ffa0facaebe1ccce1bc6d1e3e713976f7 +0 -0
- data/spec/dummy/tmp/cache/assets/EDE/7E0/sprockets%2F468f97db5bcfefe9bd7fec5fcc7dc77c +0 -0
- data/spec/dummy/tmp/cache/assets/F79/360/sprockets%2F0ce035fefee5ebdabc8efabfbdbd6ee4 +0 -0
- data/spec/dummy/tmp/cache/sass/86d3de43d0e3ec731ffbea073a11ea4a51eb7ee4/stylesheet1.css.scssc +0 -0
- data/spec/dummy/tmp/cache/sass/86d3de43d0e3ec731ffbea073a11ea4a51eb7ee4/stylesheet3.css.sassc +0 -0
- data/spec/javascripts/fixtures/fixture.html.haml +4 -0
- data/spec/javascripts/jasmine_helper.coffee +3 -0
- data/spec/javascripts/mocha_helper.coffee +3 -0
- data/spec/javascripts/spec_helper.coffee +5 -0
- data/spec/javascripts/stylesheets/stylesheet.css.scss +0 -0
- data/spec/javascripts/support/support.js.coffee +0 -0
- data/spec/javascripts/teabag/base/reporters/console_spec.coffee +121 -0
- data/spec/javascripts/teabag/base/reporters/html/failure_view_spec.coffee +1 -0
- data/spec/javascripts/teabag/base/reporters/html/progress_view_spec.coffee +1 -0
- data/spec/javascripts/teabag/base/reporters/html/spec_view_spec.coffee +1 -0
- data/spec/javascripts/teabag/base/reporters/html/suite_view_spec.coffee +1 -0
- data/spec/javascripts/teabag/base/reporters/html_spec.coffee +342 -0
- data/spec/javascripts/teabag/base/reporters_spec.coffee +267 -0
- data/spec/javascripts/teabag/base/runner_spec.coffee +34 -0
- data/spec/javascripts/teabag/base/teabag_spec.coffee +24 -0
- data/spec/javascripts/teabag/jasmine/jasmine_jspec.coffee +44 -0
- data/spec/javascripts/teabag/jasmine/reporters/html_jspec.coffee +17 -0
- data/spec/javascripts/teabag/jasmine/runner_jspec.coffee +66 -0
- data/spec/javascripts/teabag/mocha/mocha_mspec.coffee +47 -0
- data/spec/javascripts/teabag/mocha/reporters/console_mspec.coffee +20 -0
- data/spec/javascripts/teabag/mocha/reporters/html_mspec.coffee +51 -0
- data/spec/javascripts/teabag/mocha/runner_mspec.coffee +23 -0
- data/spec/javascripts/teabag/phantomjs/runner_spec.coffee +161 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/teabag/configuration_spec.rb +95 -0
- data/spec/teabag/console_spec.rb +71 -0
- data/spec/teabag/engine_spec.rb +19 -0
- data/spec/teabag/formatters/progress_formatter_spec.rb +124 -0
- data/spec/teabag/result_spec.rb +85 -0
- data/spec/teabag/runner_spec.rb +74 -0
- data/spec/teabag/server_spec.rb +99 -0
- data/spec/teabag/suite_spec.rb +57 -0
- metadata +1029 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
class Teabag::SpecController < ActionController::Base
|
|
2
|
+
helper Teabag::SpecHelper rescue nil
|
|
3
|
+
|
|
4
|
+
layout false
|
|
5
|
+
|
|
6
|
+
unless Rails.application.config.assets.debug
|
|
7
|
+
rescue_from Teabag::AssetNotServable, with: :javascript_exception
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def index
|
|
11
|
+
@suite = Teabag::Suite.new(params[:suite])
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def fixtures
|
|
15
|
+
prepend_view_path Teabag.configuration.root.join(Teabag.configuration.fixture_path)
|
|
16
|
+
render "/#{params[:filename]}"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def javascript_exception(exception)
|
|
22
|
+
err = "#{exception.class.name}: #{exception.message}"
|
|
23
|
+
render text: "<script>throw Error(#{err.inspect})</script>"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!DOCTYPE>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>Teabag :: Javascript Test Runner</title>
|
|
5
|
+
<%= stylesheet_link_tag *@suite.stylesheets %>
|
|
6
|
+
<%= javascript_include_tag *@suite.javascripts %>
|
|
7
|
+
<%= csrf_meta_tags %>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="teabag-fixtures"></div>
|
|
11
|
+
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
Teabag.version = "<%= Teabag::VERSION %>";
|
|
14
|
+
Teabag.fixturePath = "<%= Teabag.configuration.mount_at %>/fixtures";
|
|
15
|
+
Teabag.execute()
|
|
16
|
+
</script>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|
data/config/routes.rb
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
+============================================================================+
|
|
2
|
+
Congratulations! Teabag was successfully installed. Documentation and more can
|
|
3
|
+
be found at: https://github.com/modeset/teabag
|
|
4
|
+
|
|
5
|
+
Configure Teabag by editing config/initializers/teabag.rb
|
|
6
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Teabag::Generators
|
|
2
|
+
class InstallGenerator < Rails::Generators::Base
|
|
3
|
+
source_root File.expand_path("../", __FILE__)
|
|
4
|
+
|
|
5
|
+
desc "Installs the Teabag initializer into your application."
|
|
6
|
+
|
|
7
|
+
def copy_initializer
|
|
8
|
+
copy_file "templates/initializer.rb", "config/initializers/teabag.rb"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def create_structure
|
|
12
|
+
empty_directory "spec/javascripts/support"
|
|
13
|
+
empty_directory "spec/javascripts/fixtures"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def copy_spec_helper
|
|
17
|
+
copy_file "templates/spec_helper.js", "spec/javascripts/spec_helper.js"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def display_readme
|
|
21
|
+
readme "POST_INSTALL" if behavior == :invoke
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
Teabag.setup do |config|
|
|
2
|
+
|
|
3
|
+
# Mounting / Route
|
|
4
|
+
# This determines where the Teabag spec path will be mounted. Changing this to `"/jasmine"` would allow you to browse
|
|
5
|
+
# to `http://localhost:3000/jasmine` to run your specs.
|
|
6
|
+
#
|
|
7
|
+
# default: "/teabag"
|
|
8
|
+
config.mount_at = "/teabag"
|
|
9
|
+
|
|
10
|
+
# Root
|
|
11
|
+
# The root path defaults to Rails.root if left nil, but if you're testing an engine using a dummy application it's
|
|
12
|
+
# useful to be able to set this to your engines root.. E.g. `Teabag::Engine.root`
|
|
13
|
+
#
|
|
14
|
+
# default: nil, which forces defaulting to Rails.root
|
|
15
|
+
config.root = nil
|
|
16
|
+
|
|
17
|
+
# Asset paths
|
|
18
|
+
# These paths are appended to the rails assets paths (relative to config.root), and by default is an array that you
|
|
19
|
+
# can replace or add to.
|
|
20
|
+
#
|
|
21
|
+
# default: ["spec/javascripts", "spec/javascripts/stylesheets"]
|
|
22
|
+
config.asset_paths << "app/assets/some_other_path"
|
|
23
|
+
|
|
24
|
+
# Fixtures
|
|
25
|
+
# Fixtures are different than the specs, in that Rails is rendering them directly through a controller. This means you
|
|
26
|
+
# can use haml, erb builder, rabl, etc. to render content in the views available in this path.
|
|
27
|
+
#
|
|
28
|
+
# default: "spec/javascripts/fixtures"
|
|
29
|
+
config.fixture_path = "spec/javascripts/fixtures"
|
|
30
|
+
|
|
31
|
+
# Server timeout
|
|
32
|
+
# Timeout for starting the server in seconds. If your server is slow to start you may have to bump the timeout, or you
|
|
33
|
+
# may want to lower this if you know it shouldn't take long to start.
|
|
34
|
+
#
|
|
35
|
+
# default: 20
|
|
36
|
+
config.server_timeout = 20
|
|
37
|
+
|
|
38
|
+
# Failing Fast
|
|
39
|
+
# When you're running several suites it can be useful to make Teabag fail directly after any suite fails (not
|
|
40
|
+
# continuing on to the next suite), but in environments like CI this isn't as desirable. You can also configure this
|
|
41
|
+
# using the fail_fast environment variable.
|
|
42
|
+
#
|
|
43
|
+
# default: true
|
|
44
|
+
# Note: override this directive by running `rake teabag fail_fast=false`
|
|
45
|
+
config.fail_fast = true
|
|
46
|
+
|
|
47
|
+
# Suppressing Logs
|
|
48
|
+
# When you run Teabag from the console, it will pipe all console.log/debug/etc. calls to the console. This is useful
|
|
49
|
+
# to catch places where you've forgotten to remove console.log calls, but in verbose applications that use logging
|
|
50
|
+
# heavily this may not be desirable.
|
|
51
|
+
#
|
|
52
|
+
# default: false
|
|
53
|
+
# Note: override this directive by running `rake teabag suppress_log=true`
|
|
54
|
+
config.suppress_log = false
|
|
55
|
+
|
|
56
|
+
# Suites
|
|
57
|
+
# You can modify the default suite configuration or create new suites here. Suites can be entirely isolated from one
|
|
58
|
+
# another. When defining a suite you can provide a name and a block. If the name is left blank, :default is assumed.
|
|
59
|
+
# When defining suites, you can omit various directives and the defaults will be used.
|
|
60
|
+
#
|
|
61
|
+
# To run a specific suite
|
|
62
|
+
# - in the browser: http://localhost/teabag/[suite_name]
|
|
63
|
+
# - from the command line: rake teabag suite=[suite_name]
|
|
64
|
+
config.suite do |suite|
|
|
65
|
+
|
|
66
|
+
# File Matcher
|
|
67
|
+
# You can specify a file matcher for your specs, and the matching files will be automatically loaded when the suite
|
|
68
|
+
# is run. It's important that these files are serve-able from sprockets (aka the asset pipeline), otherwise you'll
|
|
69
|
+
# receive a warning about it.
|
|
70
|
+
#
|
|
71
|
+
# default: "{spec/javascripts,app/assets}/**/*_spec.{js,js.coffee,coffee}"
|
|
72
|
+
# Note: set to nil if you want to load your spec files using a manifest from within the spec helper file.
|
|
73
|
+
suite.matcher = "{spec/javascripts,app/assets}/**/*_spec.{js,js.coffee,coffee}"
|
|
74
|
+
|
|
75
|
+
# Spec Helper
|
|
76
|
+
# Each suite can load a different spec helper, which can in turn require additional files since this file is also
|
|
77
|
+
# served via the asset pipeline. This file is loaded before your specs are loaded -- so could potentially include
|
|
78
|
+
# all of your specs (if you set the matcher to nil).
|
|
79
|
+
#
|
|
80
|
+
# default: "spec_helper"
|
|
81
|
+
suite.helper = "spec_helper"
|
|
82
|
+
|
|
83
|
+
# Javascripts
|
|
84
|
+
# These are the core Teabag javascripts. Spec files should not go here -- but if you want to add additional support
|
|
85
|
+
# for jasmine matchers, switch to mocha, include expectation libraries etc., this is a good place to do that.
|
|
86
|
+
#
|
|
87
|
+
# To use mocha, you should switch this to:
|
|
88
|
+
# "teabag-mocha"
|
|
89
|
+
#
|
|
90
|
+
# To use the coffeescript source files:
|
|
91
|
+
# "teabag/jasmine" or "teabag/mocha"
|
|
92
|
+
#
|
|
93
|
+
# default: ["teabag-jasmine"]
|
|
94
|
+
suite.javascripts = ["teabag-jasmine"]
|
|
95
|
+
|
|
96
|
+
# Stylesheets
|
|
97
|
+
# If you want to change how Teabag looks, or include your own stylesheets you can do that here. The default is the
|
|
98
|
+
# stylesheet for the HTML reporter.
|
|
99
|
+
#
|
|
100
|
+
# default: ["teabag"]
|
|
101
|
+
suite.stylesheets = ["teabag"]
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Here's an example of creating a named suite. Since we're actually just filtering specs to files already within the
|
|
105
|
+
# root spec/javascripts, these files will also be run in the default suite -- but can be focused into a more specific
|
|
106
|
+
# suite.
|
|
107
|
+
#
|
|
108
|
+
# To run this suite
|
|
109
|
+
# - in the browser: http://localhost/teabag/targeted
|
|
110
|
+
# - from the command line: rake teabag suite=targeted
|
|
111
|
+
#config.suite :targeted do |suite|
|
|
112
|
+
# suite.matcher = "spec/javascripts/targeted/*_spec.{js,js.coffee,coffee}"
|
|
113
|
+
#end
|
|
114
|
+
|
|
115
|
+
end if defined?(Teabag) && Teabag.respond_to?(:setup) # let Teabag be undefined outside of development/test/asset groups
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// This is your spec helper.
|
|
2
|
+
//
|
|
3
|
+
// You can require other javascript files here.
|
|
4
|
+
//
|
|
5
|
+
// Teabag includes some useful javascripts for you, and you can include them here.
|
|
6
|
+
// require jasmine-jquery
|
|
7
|
+
// require sinon
|
|
8
|
+
// require expect
|
|
9
|
+
//
|
|
10
|
+
// You're also able to include any of the files in support as well.
|
|
11
|
+
// require support/your-support-file
|
|
12
|
+
//
|
|
13
|
+
// Deferring execution
|
|
14
|
+
// This is useful if you're using CommonJS or RequireJS or some other asynchronous loading method. To defer test
|
|
15
|
+
// execution until everything has been loaded asynchronously you can tell Teabag to defer, which then allows you to call
|
|
16
|
+
// Teabag.execute() at a later time. Here's a simple example:
|
|
17
|
+
//
|
|
18
|
+
// Teabag.defer = true
|
|
19
|
+
// setTimeout(function() { Teabag.execute() }, 1000)
|
|
20
|
+
//
|
|
21
|
+
// Spec files
|
|
22
|
+
// By default Teabag will go looking for files that match the _spec.{js,js.coffee,.coffee} naming convention, so just
|
|
23
|
+
// start dropping filename_spec.js files into this, or any nested path, and they'll automatically be picked up and
|
|
24
|
+
// included in the default suite. If you're interested in creating custom suites, check out the configuration in
|
|
25
|
+
// config/initializers/teabag.rb
|
|
26
|
+
//
|
|
27
|
+
// If you'd rather just require your spec files here manually (to control order for instance) you can disable the suite
|
|
28
|
+
// matcher in the configuration and then use this file as a manifest.
|
|
29
|
+
//
|
|
30
|
+
// For more information:
|
|
31
|
+
// http://github.com/modeset/teabag
|
data/lib/teabag.rb
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require "singleton"
|
|
2
|
+
require "teabag/formatters/progress_formatter"
|
|
3
|
+
|
|
4
|
+
module Teabag
|
|
5
|
+
class Configuration
|
|
6
|
+
|
|
7
|
+
include Singleton
|
|
8
|
+
|
|
9
|
+
cattr_accessor :root, :mount_at, :asset_paths, :fixture_path, :formatters, :server_timeout, :fail_fast, :suppress_log, :suites
|
|
10
|
+
|
|
11
|
+
@@mount_at = "/teabag"
|
|
12
|
+
@@root = nil # will default to Rails.root if left unset
|
|
13
|
+
@@asset_paths = ["spec/javascripts", "spec/javascripts/stylesheets"]
|
|
14
|
+
@@fixture_path = "spec/javascripts/fixtures"
|
|
15
|
+
@@suites = {}
|
|
16
|
+
|
|
17
|
+
# console runner specific
|
|
18
|
+
@@formatters = "progress"
|
|
19
|
+
@@default_formatter = Teabag::Formatters::ProgressFormatter
|
|
20
|
+
@@server_timeout = 20
|
|
21
|
+
@@fail_fast = true
|
|
22
|
+
@@suppress_log = false
|
|
23
|
+
|
|
24
|
+
def self.root=(path)
|
|
25
|
+
@@root = Pathname.new(path.to_s) if path.present?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.suite(name = :default, &block)
|
|
29
|
+
@@suites[name.to_s] = block
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
self.suite(:default) {}
|
|
33
|
+
|
|
34
|
+
class Suite
|
|
35
|
+
attr_accessor :matcher, :helper, :stylesheets, :javascripts
|
|
36
|
+
|
|
37
|
+
def initialize
|
|
38
|
+
@matcher = "{spec/javascripts,app/assets}/**/*_spec.{js,js.coffee,coffee}"
|
|
39
|
+
@helper = "spec_helper"
|
|
40
|
+
@javascripts = ["teabag-jasmine"]
|
|
41
|
+
@stylesheets = ["teabag"]
|
|
42
|
+
|
|
43
|
+
yield self if block_given?
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
mattr_accessor :configuration
|
|
49
|
+
@@configuration = Configuration
|
|
50
|
+
|
|
51
|
+
def self.setup
|
|
52
|
+
yield @@configuration
|
|
53
|
+
override_from_env
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
private
|
|
57
|
+
|
|
58
|
+
def self.override_from_env
|
|
59
|
+
%w(FAIL_FAST SUPPRESS_LOG).each do |directive|
|
|
60
|
+
next unless ENV[directive].present?
|
|
61
|
+
@@configuration.send("#{directive.downcase}=", ENV[directive] == "true")
|
|
62
|
+
end
|
|
63
|
+
%w(FORMATTERS).each do |directive|
|
|
64
|
+
next unless ENV[directive].present?
|
|
65
|
+
@@configuration.send("#{directive.downcase}=", ENV[directive])
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
require "teabag/server"
|
|
2
|
+
require "teabag/runner"
|
|
3
|
+
require "phantomjs"
|
|
4
|
+
|
|
5
|
+
module Teabag
|
|
6
|
+
class Console
|
|
7
|
+
|
|
8
|
+
def initialize(suite_name = nil)
|
|
9
|
+
# force asset debugging off -- gives us nicer errors on missing files, bad coffeescript, etc
|
|
10
|
+
Rails.application.config.assets.debug = false
|
|
11
|
+
|
|
12
|
+
if suite_name
|
|
13
|
+
@suites = [suite_name]
|
|
14
|
+
else
|
|
15
|
+
@suites = Teabag.configuration.suites.keys
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def execute
|
|
20
|
+
STDOUT.print "Starting server...\n"
|
|
21
|
+
start_server
|
|
22
|
+
failure_count = 0
|
|
23
|
+
@suites.each do |suite|
|
|
24
|
+
STDOUT.print "Teabag running #{suite} suite at #{url(suite)}...\n"
|
|
25
|
+
failure_count += run_specs(suite)
|
|
26
|
+
end
|
|
27
|
+
failure_count > 0
|
|
28
|
+
rescue Teabag::Failure
|
|
29
|
+
true
|
|
30
|
+
rescue Teabag::RunnerException
|
|
31
|
+
true
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def start_server
|
|
35
|
+
@server = Teabag::Server.new
|
|
36
|
+
@server.start
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def run_specs(suite)
|
|
40
|
+
runner = Teabag::Runner.new(suite)
|
|
41
|
+
Phantomjs.run(script, url(suite)) do |line|
|
|
42
|
+
runner.process(line)
|
|
43
|
+
end
|
|
44
|
+
runner.failure_count
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
protected
|
|
48
|
+
|
|
49
|
+
def script
|
|
50
|
+
File.expand_path("../phantomjs/runner.coffee", __FILE__)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def url(suite)
|
|
54
|
+
["#{@server.url}#{Teabag.configuration.mount_at}", suite].join("/")
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module Teabag
|
|
2
|
+
class Engine < ::Rails::Engine
|
|
3
|
+
|
|
4
|
+
isolate_namespace Teabag
|
|
5
|
+
|
|
6
|
+
initializer :assets, :group => :all do |app|
|
|
7
|
+
# default the root if it's not set
|
|
8
|
+
Teabag.configuration.root ||= app.root
|
|
9
|
+
|
|
10
|
+
# append the asset paths from the configuration
|
|
11
|
+
Teabag.configuration.asset_paths.each do |path|
|
|
12
|
+
app.config.assets.paths << Teabag.configuration.root.join(path).to_s
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Teabag
|
|
2
|
+
module Formatters
|
|
3
|
+
class BaseFormatter
|
|
4
|
+
|
|
5
|
+
attr_accessor :total, :passes, :pendings, :failures, :errors
|
|
6
|
+
|
|
7
|
+
def initialize
|
|
8
|
+
@total = 0
|
|
9
|
+
@passes = []
|
|
10
|
+
@pendings = []
|
|
11
|
+
@failures = []
|
|
12
|
+
@errors = []
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def spec(result)
|
|
16
|
+
@total += 1
|
|
17
|
+
if result.passing?
|
|
18
|
+
@passes << result
|
|
19
|
+
elsif result.pending?
|
|
20
|
+
@pendings << result
|
|
21
|
+
else
|
|
22
|
+
@failures << result
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Exceptions come from startup errors in the server
|
|
27
|
+
def exception(exception = {})
|
|
28
|
+
raise Teabag::RunnerException
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
require 'teabag/formatters/base_formatter'
|
|
2
|
+
|
|
3
|
+
module Teabag
|
|
4
|
+
module Formatters
|
|
5
|
+
class ProgressFormatter < BaseFormatter
|
|
6
|
+
|
|
7
|
+
RED = 31
|
|
8
|
+
GREEN = 32
|
|
9
|
+
YELLOW = 33
|
|
10
|
+
CYAN = 36
|
|
11
|
+
|
|
12
|
+
def spec(result)
|
|
13
|
+
super
|
|
14
|
+
if result.passing?
|
|
15
|
+
log ".", GREEN
|
|
16
|
+
elsif result.pending?
|
|
17
|
+
log "*", YELLOW
|
|
18
|
+
else
|
|
19
|
+
log "F", RED
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Errors are reported from the onError handler in Phantom, so they're not linked to a result
|
|
24
|
+
def error(error)
|
|
25
|
+
log "#{error["msg"]}\n", RED
|
|
26
|
+
for trace in error["trace"] || []
|
|
27
|
+
log " # #{filename(trace["file"])}:#{trace["line"]}#{trace["function"].present? ? " -- #{trace["function"]}" : ""}\n", CYAN
|
|
28
|
+
end
|
|
29
|
+
log "\n"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def results(results)
|
|
33
|
+
log "\n\n"
|
|
34
|
+
pending_log if pendings.size > 0
|
|
35
|
+
failure_log if failures.size > 0
|
|
36
|
+
status(results)
|
|
37
|
+
failed_examples if failures.size > 0
|
|
38
|
+
raise Teabag::Failure if failures.size > 0 && Teabag.configuration.fail_fast
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
private
|
|
42
|
+
|
|
43
|
+
def log(str, color_code = nil)
|
|
44
|
+
STDOUT.print(color_code ? colorize(str, color_code) : str)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def colorize(str, color_code)
|
|
48
|
+
"\e[#{color_code}m#{str}\e[0m"
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def pluralize(str, value)
|
|
52
|
+
value == 1 ? "#{value} #{str}" : "#{value} #{str}s"
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def filename(file)
|
|
56
|
+
file.gsub(%r(^http://127.0.0.1:\d+/assets/), "").gsub(/[\?|&]?body=1/, "")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def failure_log
|
|
60
|
+
log "Failures:\n"
|
|
61
|
+
failures.each_with_index do |failure, index|
|
|
62
|
+
log "\n #{index + 1}) #{failure["spec"]}\n"
|
|
63
|
+
log " Failure/Error: #{failure["message"]}\n", RED
|
|
64
|
+
end
|
|
65
|
+
log "\n"
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def failed_examples
|
|
69
|
+
log "\nFailed examples:\n"
|
|
70
|
+
failures.each do |failure|
|
|
71
|
+
log "\n#{Teabag.configuration.mount_at}/#{failure.teabag_suite}#{failure.link}", RED
|
|
72
|
+
end
|
|
73
|
+
log "\n\n"
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def pending_log
|
|
77
|
+
log "Pending:"
|
|
78
|
+
pendings.each do |result|
|
|
79
|
+
log "\n #{result.spec}\n", YELLOW
|
|
80
|
+
log " # Not yet implemented\n", CYAN
|
|
81
|
+
end
|
|
82
|
+
log "\n"
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def status(results)
|
|
86
|
+
log "Finished in #{results["elapsed"]} seconds\n"
|
|
87
|
+
stats = "#{pluralize("example", total)}, #{pluralize("failure", failures.size)}"
|
|
88
|
+
stats << ", #{pendings.size} pending" if pendings.size > 0
|
|
89
|
+
log "#{stats}\n", failures.size > 0 ? RED : pendings.size > 0 ? YELLOW : GREEN
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|