teabag 0.3.5 → 0.3.6

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.
Files changed (219) hide show
  1. data/README.md +59 -59
  2. data/app/assets/javascripts/teabag-jasmine.js +229 -190
  3. data/app/assets/javascripts/teabag-mocha.js +217 -192
  4. data/app/assets/javascripts/teabag-qunit.js +3023 -0
  5. data/app/assets/javascripts/teabag/base/reporters/console.coffee +42 -26
  6. data/app/assets/javascripts/teabag/base/reporters/html.coffee +4 -3
  7. data/app/assets/javascripts/teabag/base/reporters/html/base_view.coffee +49 -0
  8. data/app/assets/javascripts/teabag/base/reporters/html/suite_view.coffee +1 -1
  9. data/app/assets/javascripts/teabag/base/runner.coffee +10 -0
  10. data/app/assets/javascripts/teabag/base/teabag.coffee +15 -1
  11. data/app/assets/javascripts/teabag/jasmine.coffee +53 -5
  12. data/app/assets/javascripts/teabag/mocha.coffee +51 -5
  13. data/app/assets/javascripts/teabag/mocha/reporters/console.coffee +3 -2
  14. data/app/assets/javascripts/teabag/qunit.coffee +61 -0
  15. data/app/assets/javascripts/teabag/qunit/reporters/console.coffee +25 -0
  16. data/app/assets/javascripts/teabag/qunit/reporters/html.coffee +80 -0
  17. data/app/helpers/teabag/spec_helper.rb +6 -14
  18. data/lib/generators/teabag/install/templates/initializer.rb +2 -1
  19. data/lib/teabag/configuration.rb +15 -4
  20. data/lib/teabag/console.rb +5 -11
  21. data/lib/teabag/drivers/base_driver.rb +10 -0
  22. data/lib/teabag/{phantomjs → drivers/phantomjs}/runner.coffee +0 -0
  23. data/lib/teabag/drivers/phantomjs_driver.rb +25 -0
  24. data/lib/teabag/drivers/selenium_driver.rb +29 -0
  25. data/lib/teabag/formatters/base_formatter.rb +4 -2
  26. data/lib/teabag/formatters/{progress_formatter.rb → dot_formatter.rb} +5 -5
  27. data/lib/teabag/formatters/swayze_or_oprah_formatter.rb +1 -1
  28. data/lib/teabag/formatters/tap_y_formatter.rb +85 -0
  29. data/lib/teabag/result.rb +18 -29
  30. data/lib/teabag/runner.rb +2 -2
  31. data/lib/teabag/version.rb +1 -1
  32. data/spec/dummy/config/initializers/teabag.rb +6 -0
  33. data/spec/dummy/log/development.log +87684 -0
  34. data/spec/dummy/log/test.log +556 -0
  35. data/spec/dummy/tmp/cache/assets/C13/B50/sprockets%2F431452d41e5087d2211162d23c63789b +0 -0
  36. data/spec/dummy/tmp/cache/assets/C18/F90/sprockets%2F369a3f720404378b4162541fd432742d +0 -0
  37. data/spec/dummy/tmp/cache/assets/C2B/5D0/sprockets%2F98606f6051a5fc71379af24236793353 +0 -0
  38. data/spec/dummy/tmp/cache/assets/C4E/9B0/sprockets%2Fa807397434c9262c3d62da3e91152184 +0 -0
  39. data/spec/dummy/tmp/cache/assets/C59/250/sprockets%2Fa80d3fe493d2476e58c4323996064512 +0 -0
  40. data/spec/dummy/tmp/cache/assets/C72/150/sprockets%2F4194031b4b51b6422c14ac697e3455e5 +0 -0
  41. data/spec/dummy/tmp/cache/assets/C75/D50/sprockets%2F5302968a40e08d2c011aa38666d273f6 +0 -0
  42. data/spec/dummy/tmp/cache/assets/C78/6B0/sprockets%2F173640f631a07f48c900a9c2923c825b +0 -0
  43. data/spec/dummy/tmp/cache/assets/C78/EF0/sprockets%2F65f827a4a5337d05d037845161b41ab8 +0 -0
  44. data/spec/dummy/tmp/cache/assets/C78/F80/sprockets%2F9161622ddd251097a4ab816b8220984c +0 -0
  45. data/spec/dummy/tmp/cache/assets/C7A/EC0/sprockets%2F5c16e4214f5662e1b27932a57c43491b +0 -0
  46. data/spec/dummy/tmp/cache/assets/C7C/AC0/sprockets%2F29124be1160817c61bb4878894b2ba55 +0 -0
  47. data/spec/dummy/tmp/cache/assets/C80/F70/sprockets%2Fe5c9811902c221828ea647978f000be3 +0 -0
  48. data/spec/dummy/tmp/cache/assets/C87/2C0/sprockets%2F60f61c07481249fc7922664609fcae52 +0 -0
  49. data/spec/dummy/tmp/cache/assets/C89/700/sprockets%2F259935a7704fef0069303ea63fa89408 +0 -0
  50. data/spec/dummy/tmp/cache/assets/C8A/460/sprockets%2F77bffd9959420103906722b404ae8d59 +0 -0
  51. data/spec/dummy/tmp/cache/assets/C91/FA0/sprockets%2F2eb81283f5789ae91a69344552db3856 +0 -0
  52. data/spec/dummy/tmp/cache/assets/C97/430/sprockets%2Fc049582fd1c9178ff983323f75326f64 +0 -0
  53. data/spec/dummy/tmp/cache/assets/CA2/F50/sprockets%2F86094c5d1b6399d614b0771a3a0a45b0 +0 -0
  54. data/spec/dummy/tmp/cache/assets/CA6/2F0/sprockets%2F20040c18b672e4c4d2731a2a929d8b97 +0 -0
  55. data/spec/dummy/tmp/cache/assets/CA9/C40/sprockets%2F932b7e2cd1e067289ab51190800814df +0 -0
  56. data/spec/dummy/tmp/cache/assets/CAA/0C0/sprockets%2F057b0ce384f16d9202ae84473436cc35 +0 -0
  57. data/spec/dummy/tmp/cache/assets/CAD/410/sprockets%2F651414e5c7e86f05c5108dc71626b25c +0 -0
  58. data/spec/dummy/tmp/cache/assets/CB4/6A0/sprockets%2F7373c9de844b711519cb49c4f1b16822 +0 -0
  59. data/spec/dummy/tmp/cache/assets/CBB/FA0/sprockets%2F74922109263bdc965b2e9567eec6d154 +0 -0
  60. data/spec/dummy/tmp/cache/assets/CBF/630/sprockets%2F707d2db81468088470d476abff35388d +0 -0
  61. data/spec/dummy/tmp/cache/assets/CCE/C50/sprockets%2Fe12774c2fea852112414bb379a71f31a +0 -0
  62. data/spec/dummy/tmp/cache/assets/CD3/460/sprockets%2F7f3f6802b0b309ed142d0b671c9640c4 +0 -0
  63. data/spec/dummy/tmp/cache/assets/CD9/DD0/sprockets%2Fe5774759168a731da1c1149ecf0e1b03 +0 -0
  64. data/spec/dummy/tmp/cache/assets/CDB/630/sprockets%2Ffd1626fe1016c81d57217f7f80c4370a +0 -0
  65. data/spec/dummy/tmp/cache/assets/CE0/090/sprockets%2F48d5d35ae87d0723318b8bc257fa2237 +0 -0
  66. data/spec/dummy/tmp/cache/assets/CE1/250/sprockets%2Ffdc680a0d4383d37910e549ca96f5303 +0 -0
  67. data/spec/dummy/tmp/cache/assets/CE1/730/sprockets%2Fa1678837061e18d7aca0286c07acf676 +0 -0
  68. data/spec/dummy/tmp/cache/assets/CE2/190/sprockets%2F0183b0f4e9f302b8677a5e31c45c89c5 +0 -0
  69. data/spec/dummy/tmp/cache/assets/CE3/1F0/sprockets%2Fe69a515d3a9d14c669be8871012a7d07 +0 -0
  70. data/spec/dummy/tmp/cache/assets/CE6/270/sprockets%2F2c98152560d18470fec8cf4c6829b4d0 +0 -0
  71. data/spec/dummy/tmp/cache/assets/CE6/7C0/sprockets%2Fa03a2c86ce6724be8542295e1cf24798 +0 -0
  72. data/spec/dummy/tmp/cache/assets/CE7/600/sprockets%2F7656791c172a6037cfffe2a226291c9e +0 -0
  73. data/spec/dummy/tmp/cache/assets/CE7/A60/sprockets%2Ff58eee249aa167d23f8220087bb46684 +0 -0
  74. data/spec/dummy/tmp/cache/assets/CE9/9E0/sprockets%2F135480d497ed7e4884462dc0ef0b80d7 +0 -0
  75. data/spec/dummy/tmp/cache/assets/CEB/090/sprockets%2F55dcd7ace406b77208c380d496e37864 +0 -0
  76. data/spec/dummy/tmp/cache/assets/CEB/680/sprockets%2F67f0794ef8c0576d5c7da34f4437305a +0 -0
  77. data/spec/dummy/tmp/cache/assets/CEB/B40/sprockets%2F1150bf8d912aa100a132251eefaf6045 +0 -0
  78. data/spec/dummy/tmp/cache/assets/CEC/360/sprockets%2F264b79dde726b36d63fee272a0609469 +0 -0
  79. data/spec/dummy/tmp/cache/assets/CF4/6F0/sprockets%2Fed96f92571224b862b84d7078b86ded3 +0 -0
  80. data/spec/dummy/tmp/cache/assets/CF7/F10/sprockets%2F8c45854ebd195b52cc42bf3f99996336 +0 -0
  81. data/spec/dummy/tmp/cache/assets/CF8/780/sprockets%2F8845b81ff27cdb57c835836c9f91a265 +0 -0
  82. data/spec/dummy/tmp/cache/assets/CFB/210/sprockets%2F9104695bfbf9a9d4b94382e6e90487a9 +0 -0
  83. data/spec/dummy/tmp/cache/assets/CFC/380/sprockets%2Fa7443cbd671446a589867dd5f4a4f989 +0 -0
  84. data/spec/dummy/tmp/cache/assets/D00/110/sprockets%2F6a6353b7723a8b21708e0fbfe04bd422 +0 -0
  85. data/spec/dummy/tmp/cache/assets/D00/F60/sprockets%2F42e279b52511c47d26c0adb125fd04e8 +0 -0
  86. data/spec/dummy/tmp/cache/assets/D03/630/sprockets%2F5d8da32dba6a7be70426a1d554773701 +0 -0
  87. data/spec/dummy/tmp/cache/assets/D04/170/sprockets%2F76ab1dc02e6c7618852708a1e05a2df3 +0 -0
  88. data/spec/dummy/tmp/cache/assets/D04/480/sprockets%2F8bd8f10500b21d2f9d94e4cd1401c936 +0 -0
  89. data/spec/dummy/tmp/cache/assets/D05/8D0/sprockets%2F319f8f235f452343f1ebf03cb262d23d +0 -0
  90. data/spec/dummy/tmp/cache/assets/D09/BF0/sprockets%2F9e6bca5d26f50d9484385d51ba04312c +0 -0
  91. data/spec/dummy/tmp/cache/assets/D0B/740/sprockets%2F781d3a2f0449451e9f35c5b0e3e2df41 +0 -0
  92. data/spec/dummy/tmp/cache/assets/D0E/570/sprockets%2F90fe371bf8091e88a712124d9cdae260 +0 -0
  93. data/spec/dummy/tmp/cache/assets/D11/D60/sprockets%2F06d6413e059dbac9a62155639ce88d2c +0 -0
  94. data/spec/dummy/tmp/cache/assets/D11/F80/sprockets%2F48961522f6cd1a15f2fe6e25f1b37a75 +0 -0
  95. data/spec/dummy/tmp/cache/assets/D12/F40/sprockets%2Fb6f95541e256c15909e0a5a5fbf2a359 +0 -0
  96. data/spec/dummy/tmp/cache/assets/D15/750/sprockets%2F8effdd3e668a4036260a3e370f3b6657 +0 -0
  97. data/spec/dummy/tmp/cache/assets/D17/710/sprockets%2Ffa49fb6823d466e79a195e0cd71340c5 +0 -0
  98. data/spec/dummy/tmp/cache/assets/D18/AF0/sprockets%2F8f572049bd1b0a6f1eb3d27979c9544c +0 -0
  99. data/spec/dummy/tmp/cache/assets/D1A/D30/sprockets%2F815a5177e9edba0c5c996182ef1b3675 +0 -0
  100. data/spec/dummy/tmp/cache/assets/D1B/730/sprockets%2Fcf6ce779d043d29aae915f599a413380 +0 -0
  101. data/spec/dummy/tmp/cache/assets/D1D/560/sprockets%2F1ca784ee7ba1922465147e7f8963eae5 +0 -0
  102. data/spec/dummy/tmp/cache/assets/D21/AD0/sprockets%2Fd471d7f687f61341d8b19efc41f39e44 +0 -0
  103. data/spec/dummy/tmp/cache/assets/D22/D70/sprockets%2Fe86ae12aa97067ed78aa94489484ec16 +0 -0
  104. data/spec/dummy/tmp/cache/assets/D2F/810/sprockets%2F1a2674b7dac8ff403c23a570475ace04 +0 -0
  105. data/spec/dummy/tmp/cache/assets/D30/480/sprockets%2Feb011f46c64dbefb1f7e21329644c240 +0 -0
  106. data/spec/dummy/tmp/cache/assets/D31/9C0/sprockets%2Fbd102a4f5a4985c3519dd6ab0295a1c6 +0 -0
  107. data/spec/dummy/tmp/cache/assets/D34/920/sprockets%2Ff234dd736ae50902ba074c526ca8f0c8 +0 -0
  108. data/spec/dummy/tmp/cache/assets/D35/7C0/sprockets%2Ff536a2606eaf7d542c0985104cb62baf +0 -0
  109. data/spec/dummy/tmp/cache/assets/D35/F00/sprockets%2F8e7f22358123b7eb5e21d17f442ce0ac +0 -0
  110. data/spec/dummy/tmp/cache/assets/D37/810/sprockets%2F99de576ce6ad42b5c0843fc21c2025b2 +0 -0
  111. data/spec/dummy/tmp/cache/assets/D37/FF0/sprockets%2F96841ca4cfae32c515077f3f5fc303b2 +0 -0
  112. data/spec/dummy/tmp/cache/assets/D39/BE0/sprockets%2Fdb727091cf3e4b4f6126c48b6063ef0b +0 -0
  113. data/spec/dummy/tmp/cache/assets/D3C/840/sprockets%2Fc6202ec91d567a85bd3d46dc43ea9108 +0 -0
  114. data/spec/dummy/tmp/cache/assets/D3D/EC0/sprockets%2F1aa82cb99ef076aea10d472b30a58979 +0 -0
  115. data/spec/dummy/tmp/cache/assets/D3F/3A0/sprockets%2F1b3734b358a405ca6f92455db8e4b5ff +0 -0
  116. data/spec/dummy/tmp/cache/assets/D45/C30/sprockets%2Fcc744877558178a3adb77c441cadce70 +0 -0
  117. data/spec/dummy/tmp/cache/assets/D48/160/sprockets%2F32bae66fd65ce3643efb543182f2e885 +0 -0
  118. data/spec/dummy/tmp/cache/assets/D49/1F0/sprockets%2F773b56f87127c6605e7d1d3faf2b6af6 +0 -0
  119. data/spec/dummy/tmp/cache/assets/D49/A10/sprockets%2Fc4656bd995a6f297c26d19b13aadb963 +0 -0
  120. data/spec/dummy/tmp/cache/assets/D4A/A50/sprockets%2Fb95795be8b937dab770541e27ddb2e70 +0 -0
  121. data/spec/dummy/tmp/cache/assets/D4C/840/sprockets%2F7732c94884c24e764f109ce2deb2a9ed +0 -0
  122. data/spec/dummy/tmp/cache/assets/D50/D70/sprockets%2Fe2a3e6c95b11e0801a4eebae3a026026 +0 -0
  123. data/spec/dummy/tmp/cache/assets/D51/400/sprockets%2Ff5e433d8a31e80985b75ce598de236be +0 -0
  124. data/spec/dummy/tmp/cache/assets/D58/870/sprockets%2F3cef1ff075a050004b74ffa13c8c4f02 +0 -0
  125. data/spec/dummy/tmp/cache/assets/D5B/9D0/sprockets%2F9c18c0aa5bbe1b323c5022c98aa09f29 +0 -0
  126. data/spec/dummy/tmp/cache/assets/D5B/E60/sprockets%2F167c229432f74a17b4c6a07bbb19aacb +0 -0
  127. data/spec/dummy/tmp/cache/assets/D5C/710/sprockets%2F9427d05cee2caa721241a25a9af1d08f +0 -0
  128. data/spec/dummy/tmp/cache/assets/D5C/CC0/sprockets%2Faa8bf6de211f2765b0a26f112b971f0c +0 -0
  129. data/spec/dummy/tmp/cache/assets/D5E/FA0/sprockets%2Fc81c371ae2d61a6aa1708262fba79e0d +0 -0
  130. data/spec/dummy/tmp/cache/assets/D60/060/sprockets%2Fe8a6ac51dd42491eaa2f9130c1629eb2 +0 -0
  131. data/spec/dummy/tmp/cache/assets/D61/1F0/sprockets%2F0c7a6176d2fc4db00bb9a74d36380fe1 +0 -0
  132. data/spec/dummy/tmp/cache/assets/D61/BD0/sprockets%2Ff96fcad988ca7fea975e538c27188605 +0 -0
  133. data/spec/dummy/tmp/cache/assets/D65/AD0/sprockets%2Fcc53fff930eaf306c15c4568cb265c00 +0 -0
  134. data/spec/dummy/tmp/cache/assets/D67/030/sprockets%2Fb8b36ba6104c8dbe6297b4e61e6d33b1 +0 -0
  135. data/spec/dummy/tmp/cache/assets/D67/BC0/sprockets%2F35d2c2b45981ade5a2db2a9c7f37a615 +0 -0
  136. data/spec/dummy/tmp/cache/assets/D69/F90/sprockets%2F6a0795b7b38bd7e6142cd1b88211dade +0 -0
  137. data/spec/dummy/tmp/cache/assets/D6A/950/sprockets%2F429b1806cb7580ebf29f9a12c33cbea6 +0 -0
  138. data/spec/dummy/tmp/cache/assets/D6C/9C0/sprockets%2Fd66bdf546164ba223e20f56b5591ddfd +0 -0
  139. data/spec/dummy/tmp/cache/assets/D6D/530/sprockets%2F8d52dee91bff01a8a2306d8a7c9152a9 +0 -0
  140. data/spec/dummy/tmp/cache/assets/D6D/DA0/sprockets%2Fac936bf40b42227a2bf9d474ae9ec149 +0 -0
  141. data/spec/dummy/tmp/cache/assets/D6F/310/sprockets%2F624b651d37f7ec0c563c446fbf8afb32 +0 -0
  142. data/spec/dummy/tmp/cache/assets/D71/A70/sprockets%2F4f10f5dd56c8a3ff78c460bbe3723a39 +0 -0
  143. data/spec/dummy/tmp/cache/assets/D72/C10/sprockets%2Ffbdb5250837c5cb856f464eb2cb3388b +0 -0
  144. data/spec/dummy/tmp/cache/assets/D73/5D0/sprockets%2F5c8608f3e25d077fa3df8cd32b50c37f +0 -0
  145. data/spec/dummy/tmp/cache/assets/D73/C00/sprockets%2F9cf4bfb486e4ab461e3f275a3d974c30 +0 -0
  146. data/spec/dummy/tmp/cache/assets/D77/B30/sprockets%2F946cf2f17c7eb41037f9ee08ad67ec40 +0 -0
  147. data/spec/dummy/tmp/cache/assets/D78/2F0/sprockets%2F3c61f8915b8f717b1de788e6ecad122c +0 -0
  148. data/spec/dummy/tmp/cache/assets/D78/870/sprockets%2F8f3a7d4fcd104fa8e47f552f6630a49e +0 -0
  149. data/spec/dummy/tmp/cache/assets/D7E/C10/sprockets%2F747c98c3cc7494a62dd882752adffb2b +0 -0
  150. data/spec/dummy/tmp/cache/assets/D7F/6C0/sprockets%2F77fe714bfff7e409a9d838cdf126700c +0 -0
  151. data/spec/dummy/tmp/cache/assets/D84/560/sprockets%2Ff09b671d3f5f8a48d7fa28e2c59ca389 +0 -0
  152. data/spec/dummy/tmp/cache/assets/D85/5D0/sprockets%2Fde362e334a475cfca1a30fa5b713b43a +0 -0
  153. data/spec/dummy/tmp/cache/assets/D8C/520/sprockets%2F221cd58a042baac534d27e4cfedc1188 +0 -0
  154. data/spec/dummy/tmp/cache/assets/D92/C00/sprockets%2F63c8bb5e2b2d9db4a2ed16f056a234c6 +0 -0
  155. data/spec/dummy/tmp/cache/assets/D97/520/sprockets%2Fea2442ae4caddb758dfb1964c601b476 +0 -0
  156. data/spec/dummy/tmp/cache/assets/D9C/510/sprockets%2Fab9bab3574dac2d1681189debb7d8255 +0 -0
  157. data/spec/dummy/tmp/cache/assets/D9D/440/sprockets%2F869f9acc13b88cf15a31d24a0ac3f6f6 +0 -0
  158. data/spec/dummy/tmp/cache/assets/D9E/CB0/sprockets%2Ff0efe0ab6bd753a8bb4481e46243d77f +0 -0
  159. data/spec/dummy/tmp/cache/assets/DA0/330/sprockets%2Fcbbb4de706387d50f48a72ee6c9c1b80 +0 -0
  160. data/spec/dummy/tmp/cache/assets/DA5/0A0/sprockets%2F7a4b5928cec69ab65afff309a04d6b47 +0 -0
  161. data/spec/dummy/tmp/cache/assets/DA6/D80/sprockets%2F8702dce2e6b9879a6add309e92ace2f0 +0 -0
  162. data/spec/dummy/tmp/cache/assets/DA8/C50/sprockets%2F0810627fddce930a399fc60d3be97fed +0 -0
  163. data/spec/dummy/tmp/cache/assets/DAA/1E0/sprockets%2F412dd3bd3026759a3f6ffe8cf9e7b93a +0 -0
  164. data/spec/dummy/tmp/cache/assets/DAA/2B0/sprockets%2Fe0c5d93fa08d139e198bfe47cd42b99a +0 -0
  165. data/spec/dummy/tmp/cache/assets/DAE/4E0/sprockets%2F88cc3ab99c608879dd56164dbcc2ccb7 +0 -0
  166. data/spec/dummy/tmp/cache/assets/DAE/6C0/sprockets%2F77c7a8676aeefa73156c55dfcf51cc46 +0 -0
  167. data/spec/dummy/tmp/cache/assets/DAF/5B0/sprockets%2F780e81d97e4eefcce73e0b82a5b1859d +0 -0
  168. data/spec/dummy/tmp/cache/assets/DB3/5D0/sprockets%2Fce1d4d75832c9bdeafd869f6f7b61725 +0 -0
  169. data/spec/dummy/tmp/cache/assets/DB5/040/sprockets%2F9a9da5df88713663b9fbc945facca891 +0 -0
  170. data/spec/dummy/tmp/cache/assets/DB5/860/sprockets%2Facf25fab3016425a0e03c9d190fd4eac +0 -0
  171. data/spec/dummy/tmp/cache/assets/DB9/220/sprockets%2Fd2dc4f59e70e73984997ffca8ad7f4a0 +0 -0
  172. data/spec/dummy/tmp/cache/assets/DC3/230/sprockets%2Fdf52e72eb73be91eccc60182191aed0b +0 -0
  173. data/spec/dummy/tmp/cache/assets/DC3/AC0/sprockets%2Fe29911eb34fdf4b710dd0d2c2cf24bc9 +0 -0
  174. data/spec/dummy/tmp/cache/assets/DC4/860/sprockets%2Fa01a3cf460ff15daae0f928d0f85f52e +0 -0
  175. data/spec/dummy/tmp/cache/assets/DC7/A10/sprockets%2F84a8af0fcbf401864e1ae5bf092cba94 +0 -0
  176. data/spec/dummy/tmp/cache/assets/DCB/620/sprockets%2F27a68cf9fe11fb1b6326d11eba7e76cb +0 -0
  177. data/spec/dummy/tmp/cache/assets/DCD/EB0/sprockets%2F4f77f509126ecbced7ea2a5ab290c8d4 +0 -0
  178. data/spec/dummy/tmp/cache/assets/DE3/6C0/sprockets%2F51c550cc1b3b021aa9aede66a5a36aff +0 -0
  179. data/spec/dummy/tmp/cache/assets/DE4/140/sprockets%2F139e4ab85d1aacb22c115fa136afdc8a +0 -0
  180. data/spec/dummy/tmp/cache/assets/DEB/110/sprockets%2F2dbdab0ce5babca645cdb5780004f875 +0 -0
  181. data/spec/dummy/tmp/cache/assets/DF1/1B0/sprockets%2F2b1bc202f9a338942edbccb2cfef0d67 +0 -0
  182. data/spec/dummy/tmp/cache/assets/DF6/0E0/sprockets%2F85b10db6e1afe643aba6d396abdd77f0 +0 -0
  183. data/spec/dummy/tmp/cache/assets/DF7/E10/sprockets%2F25e4253aba9a9adcefb72552fb1ff0c8 +0 -0
  184. data/spec/dummy/tmp/cache/assets/DF9/AD0/sprockets%2Fc700afd7cee3fe9d7ff8352b213b2c4a +0 -0
  185. data/spec/dummy/tmp/cache/assets/DFC/C20/sprockets%2Fd9178ad7e3b401c9fceafd64ea2b50d6 +0 -0
  186. data/spec/dummy/tmp/cache/assets/DFC/C30/sprockets%2Fb50a07cb30b0bd0eec8e98e5de79d65d +0 -0
  187. data/spec/dummy/tmp/cache/assets/E02/6E0/sprockets%2F63d6a5cdb8cefa64ef76b5c6e0fd3720 +0 -0
  188. data/spec/dummy/tmp/cache/assets/E08/5A0/sprockets%2Fe7148db8eea925c3c9f1ee340d53ceff +0 -0
  189. data/spec/dummy/tmp/cache/assets/E08/BB0/sprockets%2Fefac99af1af28543aef6fb607faa4973 +0 -0
  190. data/spec/dummy/tmp/cache/assets/E08/F20/sprockets%2F4fc5cdcd6974efe7adfe809b30bd6513 +0 -0
  191. data/spec/dummy/tmp/cache/assets/E16/D30/sprockets%2Fd69469e6e7439baacd8df989c0fdacc2 +0 -0
  192. data/spec/dummy/tmp/cache/assets/E17/EF0/sprockets%2Fa291ad64a26afd055dfadabbdf03f154 +0 -0
  193. data/spec/dummy/tmp/cache/assets/E41/250/sprockets%2F97cf8fe3d7ffaff076f655aefb36da03 +0 -0
  194. data/spec/dummy/tmp/cache/assets/E6E/260/sprockets%2Fd9f8ab8b91ef582cc6c99a3ba0dedfe6 +0 -0
  195. data/spec/dummy/tmp/cache/assets/F79/360/sprockets%2F0ce035fefee5ebdabc8efabfbdbd6ee4 +0 -0
  196. data/spec/javascripts/teabag/base/reporters/console_spec.coffee +69 -42
  197. data/spec/javascripts/teabag/base/reporters/html/base_view_spec.coffee +88 -0
  198. data/spec/javascripts/teabag/base/reporters/html_spec.coffee +218 -218
  199. data/spec/javascripts/teabag/base/runner_spec.coffee +22 -0
  200. data/spec/javascripts/teabag/base/teabag_spec.coffee +1 -1
  201. data/spec/javascripts/teabag/jasmine/models_jspec.coffee +101 -0
  202. data/spec/javascripts/teabag/jasmine/runner_jspec.coffee +1 -1
  203. data/spec/javascripts/teabag/mocha/models_mspec.coffee +95 -0
  204. data/spec/javascripts/teabag/mocha/reporters/console_mspec.coffee +4 -0
  205. data/spec/javascripts/teabag/mocha/runner_mspec.coffee +7 -7
  206. data/spec/javascripts/teabag/phantomjs/runner_spec.coffee +5 -5
  207. data/spec/teabag/configuration_spec.rb +2 -2
  208. data/spec/teabag/console_spec.rb +5 -17
  209. data/spec/teabag/drivers/phantomjs_driver_spec.rb +29 -0
  210. data/spec/teabag/drivers/selenium_driver_spec.rb +60 -0
  211. data/spec/teabag/formatters/{progress_formatter_spec.rb → dot_formatter_spec.rb} +14 -14
  212. data/spec/teabag/formatters/tap_y_formatter_spec.rb +190 -0
  213. data/spec/teabag/result_spec.rb +12 -42
  214. data/spec/teabag/runner_spec.rb +12 -6
  215. data/vendor/assets/javascripts/qunit-1.10.0.MIT.LICENSE +1 -0
  216. data/vendor/assets/javascripts/qunit-1.10.0.js +1977 -0
  217. metadata +161 -11
  218. data/app/assets/javascripts/teabag/base/reporters.coffee +0 -105
  219. data/spec/javascripts/teabag/base/reporters_spec.coffee +0 -267
@@ -1,58 +1,74 @@
1
1
  class Teabag.Reporters.Console
2
2
 
3
3
  constructor: ->
4
- @start = new Teabag.Date().getTime()
4
+ @start = new Teabag.Date()
5
+ @suites = {}
6
+
7
+
8
+ reportRunnerStarting: (runner) ->
9
+ @log
10
+ type: "runner"
11
+ total: runner.total || runner.specs().length
12
+ start: JSON.parse(JSON.stringify(@start))
13
+
14
+
15
+ reportSuites: ->
16
+ for suite, index in @spec.getParents()
17
+ continue if @suites[suite.fullDescription]
18
+ @suites[suite.fullDescription] = true
19
+ @log
20
+ type: "suite"
21
+ label: suite.description
22
+ level: index
5
23
 
6
24
 
7
25
  reportSpecResults: (spec) ->
8
- @spec = new Teabag.Reporters.NormalizedSpec(spec)
26
+ @spec = new Teabag.Spec(spec)
9
27
  result = @spec.result()
28
+ @reportSuites()
10
29
  switch result.status
11
30
  when "pending" then @trackPending()
12
31
  when "failed" then @trackFailure()
13
32
  else
14
33
  @log
15
- type: "spec"
16
- suite: @spec.suiteName
17
- spec: @spec.description
18
- status: result.status
19
- skipped: result.skipped
20
- full_description: @spec.fullDescription
34
+ type: "spec"
35
+ suite: @spec.suiteName
36
+ label: @spec.description
37
+ status: result.status
38
+ skipped: result.skipped
21
39
 
22
40
 
23
41
  trackPending: ->
24
42
  result = @spec.result()
25
43
  @log
26
- type: "spec"
27
- suite: @spec.suiteName
28
- spec: @spec.description
29
- status: result.status
30
- skipped: result.skipped
31
- full_description: @spec.fullDescription
44
+ type: "spec"
45
+ suite: @spec.suiteName
46
+ label: @spec.description
47
+ status: result.status
48
+ skipped: result.skipped
32
49
 
33
50
 
34
51
  trackFailure: ->
35
52
  result = @spec.result()
36
53
  for error in @spec.errors()
37
54
  @log
38
- type: "spec"
39
- suite: @spec.suiteName
40
- spec: @spec.description
41
- status: result.status
42
- skipped: result.skipped
43
- full_description: @spec.fullDescription
44
- link: @spec.link
45
- message: error.message
46
- trace: error.stack || error.message || "Stack Trace Unavailable"
55
+ type: "spec"
56
+ suite: @spec.suiteName
57
+ label: @spec.description
58
+ status: result.status
59
+ skipped: result.skipped
60
+ link: @spec.link
61
+ message: error.message
62
+ trace: error.stack || error.message || "Stack Trace Unavailable"
47
63
 
48
64
 
49
65
  reportRunnerResults: =>
50
66
  @log
51
- type: "results"
52
- elapsed: ((new Teabag.Date().getTime() - @start) / 1000).toFixed(5)
67
+ type: "result"
68
+ elapsed: ((new Teabag.Date().getTime() - @start.getTime()) / 1000).toFixed(5)
53
69
  Teabag.finished = true
54
70
 
55
71
 
56
72
  log: (obj = {}) ->
57
73
  obj["_teabag"] = true
58
- Teabag.console.log(JSON.stringify(obj))
74
+ Teabag.log(JSON.stringify(obj))
@@ -1,3 +1,4 @@
1
+ #= require teabag/base/reporters/html/base_view
1
2
  #= require_self
2
3
  #= require teabag/base/reporters/html/progress_view
3
4
  #= require teabag/base/reporters/html/spec_view
@@ -78,7 +79,7 @@ class Teabag.Reporters.HTML extends Teabag.Reporters.BaseView
78
79
 
79
80
 
80
81
  reportSpecStarting: (spec) ->
81
- spec = new Teabag.Reporters.NormalizedSpec(spec)
82
+ spec = new Teabag.Spec(spec)
82
83
  @reportView = new Teabag.Reporters.HTML.SpecView(spec, @) if @config["build-full-report"]
83
84
  @specStart = new Teabag.Date().getTime()
84
85
 
@@ -112,7 +113,7 @@ class Teabag.Reporters.HTML extends Teabag.Reporters.BaseView
112
113
 
113
114
 
114
115
  updateStatus: (spec) ->
115
- spec = new Teabag.Reporters.NormalizedSpec(spec)
116
+ spec = new Teabag.Spec(spec)
116
117
  result = spec.result()
117
118
 
118
119
  if result.skipped || result.status == "pending"
@@ -174,4 +175,4 @@ class Teabag.Reporters.HTML extends Teabag.Reporters.BaseView
174
175
  else
175
176
  date = new Teabag.Date()
176
177
  date.setDate(date.getDate() + 365)
177
- document.cookie = "#{name}=#{escape(JSON.stringify(value))}; path=/; expires=#{date.toUTCString()};"
178
+ document.cookie = "#{name}=#{escape(JSON.stringify(value))}; path=\"/\"; expires=#{date.toUTCString()};"
@@ -0,0 +1,49 @@
1
+ class Teabag.Reporters.BaseView
2
+
3
+ constructor: ->
4
+ @elements = {}
5
+ @build()
6
+
7
+
8
+ build: (className) ->
9
+ @el = @createEl("li", className)
10
+
11
+
12
+ appendTo: (el) ->
13
+ el.appendChild(@el)
14
+
15
+
16
+ append: (el) ->
17
+ @el.appendChild(el)
18
+
19
+
20
+ createEl: (type, className = "") ->
21
+ el = document.createElement(type)
22
+ el.className = className
23
+ el
24
+
25
+
26
+ findEl: (id) ->
27
+ @elements ||= {}
28
+ @elements[id] ||= document.getElementById("teabag-#{id}")
29
+
30
+
31
+ setText: (id, value) ->
32
+ el = @findEl(id)
33
+ el.innerHTML = value
34
+
35
+
36
+ setHtml: (id, value, add = false) ->
37
+ el = @findEl(id)
38
+ if add then el.innerHTML += value else el.innerHTML = value
39
+
40
+
41
+ setClass: (id, value) ->
42
+ el = @findEl(id)
43
+ el.className = value
44
+
45
+
46
+ htmlSafe: (str) ->
47
+ el = document.createElement("div")
48
+ el.appendChild(document.createTextNode(str))
49
+ el.innerHTML
@@ -6,7 +6,7 @@ class Teabag.Reporters.HTML.SuiteView extends Teabag.Reporters.BaseView
6
6
  @views = @reporter.views
7
7
  @suite.viewId = viewId += 1
8
8
  @views.suites[@suite.viewId] = @
9
- @suite = new Teabag.Reporters.NormalizedSuite(suite)
9
+ @suite = new Teabag.Suite(suite)
10
10
  super
11
11
 
12
12
 
@@ -18,5 +18,15 @@ class Teabag.Runner
18
18
  params
19
19
 
20
20
 
21
+ getReporter: ->
22
+ if @params["reporter"]
23
+ Teabag.Reporters[@params["reporter"]]
24
+ else
25
+ if window.navigator.userAgent.match(/PhantomJS/)
26
+ Teabag.Reporters.Console
27
+ else
28
+ Teabag.Reporters.HTML
29
+
30
+
21
31
  setup: ->
22
32
  # left for subclasses to implement
@@ -1,6 +1,7 @@
1
1
  #= require_self
2
2
  #= require teabag/base/runner
3
- #= require teabag/base/reporters
3
+ #= require teabag/base/reporters/html
4
+ #= require teabag/base/reporters/console
4
5
 
5
6
  class @Teabag
6
7
  @defer : false
@@ -11,9 +12,22 @@ class @Teabag
11
12
  @Date : Date
12
13
  @location : window.location
13
14
  @console : window.console
15
+ @messages : []
14
16
 
15
17
  @execute: ->
16
18
  if @defer
17
19
  @defer = false
18
20
  return
19
21
  new Teabag.Runner()
22
+
23
+
24
+ # logging methods -- used by selenium / phantomJS to get information back to ruby
25
+ @log: ->
26
+ @messages.push(arguments[0])
27
+ @console.log(arguments...)
28
+
29
+
30
+ @getMessages: ->
31
+ messages = @messages
32
+ @messages = []
33
+ messages
@@ -1,6 +1,6 @@
1
1
  #= require jasmine-1.3.0
2
2
  #= require teabag/base/teabag
3
- #= require_tree ./jasmine/reporters
3
+ #= require teabag/jasmine/reporters/html
4
4
 
5
5
  class Teabag.Runner extends Teabag.Runner
6
6
 
@@ -19,10 +19,7 @@ class Teabag.Runner extends Teabag.Runner
19
19
  env.specFilter = (spec) -> return spec.getFullName().indexOf(grep) == 0
20
20
 
21
21
  # add the reporter and set the filter
22
- if navigator.userAgent.match(/PhantomJS/)
23
- reporter = new Teabag.Reporters.Console()
24
- else
25
- reporter = new Teabag.Reporters.HTML()
22
+ reporter = new (@getReporter())()
26
23
  reporter.setFilter?(@params["grep"])
27
24
  env.addReporter(reporter)
28
25
 
@@ -36,3 +33,54 @@ class Teabag.Runner extends Teabag.Runner
36
33
  jasmine.getFixtures().fixturesPath = @fixturePath
37
34
  jasmine.getStyleFixtures().fixturesPath = @fixturePath
38
35
  jasmine.getJSONFixtures().fixturesPath = @fixturePath
36
+
37
+
38
+
39
+ class Teabag.Spec
40
+
41
+ constructor: (@spec) ->
42
+ @fullDescription = @spec.getFullName()
43
+ @description = @spec.description
44
+ @link = "?grep=#{encodeURIComponent(@fullDescription)}"
45
+ @parent = @spec.suite
46
+ @suiteName = @parent.getFullName()
47
+ @viewId = @spec.viewId
48
+ @pending = @spec.pending
49
+
50
+
51
+ errors: ->
52
+ return [] unless @spec.results
53
+ for item in @spec.results().getItems()
54
+ continue if item.passed()
55
+ {message: item.message, stack: item.trace.stack}
56
+
57
+
58
+ getParents: ->
59
+ return @parents if @parents
60
+ @parents ||= []
61
+ parent = @parent
62
+ while parent
63
+ parent = new Teabag.Suite(parent)
64
+ @parents.unshift(parent)
65
+ parent = parent.parent
66
+ @parents
67
+
68
+
69
+ result: ->
70
+ results = @spec.results()
71
+ status = "failed"
72
+ status = "passed" if results.passed()
73
+ status = "pending" if @spec.pending
74
+ status: status
75
+ skipped: results.skipped
76
+
77
+
78
+
79
+ class Teabag.Suite
80
+
81
+ constructor: (@suite) ->
82
+ @fullDescription = @suite.getFullName()
83
+ @description = @suite.description
84
+ @link = "?grep=#{encodeURIComponent(@fullDescription)}"
85
+ @parent = @suite.parentSuite
86
+ @viewId = @suite.viewId
@@ -1,6 +1,7 @@
1
1
  #= require mocha-1.7.3
2
2
  #= require teabag/base/teabag
3
- #= require_tree ./mocha/reporters
3
+ #= require teabag/mocha/reporters/console
4
+ #= require teabag/mocha/reporters/html
4
5
 
5
6
  class Teabag.Runner extends Teabag.Runner
6
7
 
@@ -13,9 +14,54 @@ class Teabag.Runner extends Teabag.Runner
13
14
 
14
15
  setup: ->
15
16
  # add the reporter and set the filter
16
- if navigator.userAgent.match(/PhantomJS/)
17
- reporter = Teabag.Reporters.Console
18
- else
19
- reporter = Teabag.Reporters.HTML
17
+ reporter = @getReporter()
20
18
  reporter.filter = @params["grep"]
21
19
  env.setup(reporter: reporter)
20
+
21
+
22
+
23
+ class Teabag.Spec
24
+
25
+ constructor: (@spec) ->
26
+ @fullDescription = @spec.fullTitle()
27
+ @description = @spec.title
28
+ @link = "?grep=#{encodeURIComponent(@fullDescription)}"
29
+ @parent = @spec.parent
30
+ @suiteName = @parent.fullTitle()
31
+ @viewId = @spec.viewId
32
+ @pending = @spec.pending
33
+
34
+
35
+ errors: ->
36
+ return [] unless @spec.err
37
+ [@spec.err]
38
+
39
+
40
+ getParents: ->
41
+ return @parents if @parents
42
+ @parents ||= []
43
+ parent = @parent
44
+ while parent
45
+ parent = new Teabag.Suite(parent)
46
+ @parents.unshift(parent)
47
+ parent = parent.parent
48
+ @parents
49
+
50
+
51
+ result: ->
52
+ status = "failed"
53
+ status = "passed" if @spec.state == "passed" || @spec.state == "skipped"
54
+ status = "pending" if @spec.pending
55
+ status: status
56
+ skipped: @spec.state == "skipped"
57
+
58
+
59
+
60
+ class Teabag.Suite
61
+
62
+ constructor: (@suite) ->
63
+ @fullDescription = @suite.fullTitle()
64
+ @description = @suite.title
65
+ @link = "?grep=#{encodeURIComponent(@fullDescription)}"
66
+ @parent = if @suite.parent.root then null else @suite.parent
67
+ @viewId = @suite.viewId
@@ -2,13 +2,14 @@ class Teabag.Reporters.Console extends Teabag.Reporters.Console
2
2
 
3
3
  constructor: (runner) ->
4
4
  super
5
+ @reportRunnerStarting(runner)
5
6
  runner.on("fail", @reportSpecResults)
6
7
  runner.on("test end", @reportSpecResults)
7
8
  runner.on("end", @reportRunnerResults)
8
9
 
9
10
 
10
- reportSpecResults: (@spec, err) =>
11
+ reportSpecResults: (spec, err) =>
11
12
  if err
12
- @spec.err = err
13
+ spec.err = err
13
14
  return
14
15
  super
@@ -0,0 +1,61 @@
1
+ #= require qunit-1.10.0
2
+ #= require teabag/base/teabag
3
+ #= require teabag/qunit/reporters/console
4
+ #= require teabag/qunit/reporters/html
5
+
6
+ class Teabag.Runner extends Teabag.Runner
7
+
8
+ env = QUnit
9
+ env.config.autostart = false
10
+ env.config.altertitle = false
11
+
12
+ constructor: ->
13
+ super
14
+ env.start()
15
+
16
+
17
+ setup: ->
18
+ reporter = new (@getReporter())(env)
19
+ reporter.setFilter?(@params["grep"])
20
+
21
+
22
+
23
+ class Teabag.Spec
24
+
25
+ constructor: (@spec) ->
26
+ @fullDescription = "#{@spec.module} #{@spec.name}"
27
+ @description = "#{@spec.name} (#{@spec.failed}, #{@spec.passed}, #{@spec.total})"
28
+ @link = "?grep=#{encodeURIComponent(@fullDescription)}"
29
+ @parent = if @spec.module then new Teabag.Suite({description: @spec.module}) else null
30
+ @suiteName = @spec.module
31
+ @viewId = @spec.viewId
32
+ @pending = false
33
+
34
+
35
+ errors: ->
36
+ return [] unless @spec.failed
37
+ for item in @spec.assertions
38
+ continue if item.result
39
+ {message: item.message, stack: item.source}
40
+
41
+
42
+ getParents: ->
43
+ return [] unless @parent
44
+ [@parent]
45
+
46
+
47
+ result: ->
48
+ status = "failed"
49
+ status = "passed" unless @spec.failed
50
+ status: status
51
+ skipped: false
52
+
53
+
54
+
55
+ class Teabag.Suite
56
+
57
+ constructor: (@suite) ->
58
+ @fullDescription = @suite.description
59
+ @description = @suite.description
60
+ @link = "?grep=#{encodeURIComponent(@fullDescription)}"
61
+ @parent = null