rwiki 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1121) hide show
  1. data/.rspec +2 -0
  2. data/CHANGELOG.textile +21 -0
  3. data/Gemfile +40 -23
  4. data/Gemfile.lock +181 -0
  5. data/README.textile +0 -1
  6. data/Rakefile +28 -23
  7. data/bin/rwiki +15 -5
  8. data/bin/rwiki-migrate +11 -0
  9. data/config.ru +4 -3
  10. data/config/assets.yml +52 -0
  11. data/config/config.yml.example +1 -1
  12. data/config/deploy.rb +5 -8
  13. data/features/create_page.feature +46 -43
  14. data/features/delete_page.feature +17 -19
  15. data/features/display_page.feature +19 -21
  16. data/features/edit_page.feature +76 -0
  17. data/features/fuzzy_finder.feature +2 -3
  18. data/features/history.feature +27 -48
  19. data/features/internal_links.feature +10 -0
  20. data/features/loading_mask.feature +18 -0
  21. data/features/move_page.feature +36 -0
  22. data/features/rename_node.feature +78 -0
  23. data/features/step_definitions/common_steps.rb +69 -13
  24. data/features/step_definitions/dialog_box_steps.rb +1 -1
  25. data/features/step_definitions/history_steps.rb +4 -0
  26. data/features/step_definitions/tab_panel_steps.rb +12 -2
  27. data/features/step_definitions/toolbar_steps.rb +7 -0
  28. data/features/step_definitions/tree_panel_steps.rb +69 -37
  29. data/features/support/env.rb +22 -12
  30. data/features/support/paths.rb +1 -1
  31. data/features/tab_contextmenu.feature +44 -0
  32. data/features/tab_panel.feature +17 -31
  33. data/features/tree_panel.feature +20 -17
  34. data/lib/rwiki.rb +15 -7
  35. data/lib/rwiki/app.rb +68 -44
  36. data/lib/rwiki/configuration.rb +24 -12
  37. data/lib/rwiki/page.rb +190 -0
  38. data/lib/rwiki/rake.rb +5 -0
  39. data/lib/rwiki/rake/migrate.rb +73 -0
  40. data/lib/rwiki/utils.rb +6 -0
  41. data/lib/rwiki/utils/file_helper.rb +117 -0
  42. data/lib/rwiki/utils/textile_helper.rb +69 -0
  43. data/lib/rwiki/version.rb +10 -0
  44. data/{test/fixtures/pages/Info/dummy → log/.gitkeep} +0 -0
  45. data/public/{resources/ext/images → images/vendor/ext}/access/box/corners-blue.gif +0 -0
  46. data/public/{resources/ext/images → images/vendor/ext}/access/box/corners.gif +0 -0
  47. data/public/{resources/ext/images → images/vendor/ext}/access/box/l-blue.gif +0 -0
  48. data/public/{resources/ext/images → images/vendor/ext}/access/box/l.gif +0 -0
  49. data/public/{resources/ext/images → images/vendor/ext}/access/box/r-blue.gif +0 -0
  50. data/public/{resources/ext/images → images/vendor/ext}/access/box/r.gif +0 -0
  51. data/public/{resources/ext/images → images/vendor/ext}/access/box/tb-blue.gif +0 -0
  52. data/public/{resources/ext/images → images/vendor/ext}/access/box/tb.gif +0 -0
  53. data/public/{resources/ext/images → images/vendor/ext}/access/button/arrow.gif +0 -0
  54. data/public/{resources/ext/images → images/vendor/ext}/access/button/btn.gif +0 -0
  55. data/public/{resources/ext/images → images/vendor/ext}/access/button/group-cs.gif +0 -0
  56. data/public/{resources/ext/images → images/vendor/ext}/access/button/group-lr.gif +0 -0
  57. data/public/{resources/ext/images → images/vendor/ext}/access/button/group-tb.gif +0 -0
  58. data/public/{resources/ext/images → images/vendor/ext}/access/button/s-arrow-b-noline.gif +0 -0
  59. data/public/{resources/ext/images → images/vendor/ext}/access/button/s-arrow-b.gif +0 -0
  60. data/public/{resources/ext/images → images/vendor/ext}/access/button/s-arrow-bo.gif +0 -0
  61. data/public/{resources/ext/images → images/vendor/ext}/access/button/s-arrow-noline.gif +0 -0
  62. data/public/{resources/ext/images → images/vendor/ext}/access/button/s-arrow-o.gif +0 -0
  63. data/public/{resources/ext/images → images/vendor/ext}/access/button/s-arrow.gif +0 -0
  64. data/public/{resources/ext/images → images/vendor/ext}/access/editor/tb-sprite.gif +0 -0
  65. data/public/{resources/ext/images → images/vendor/ext}/access/form/checkbox.gif +0 -0
  66. data/public/{resources/ext/images → images/vendor/ext}/access/form/clear-trigger.gif +0 -0
  67. data/public/{resources/ext/images → images/vendor/ext}/access/form/clear-trigger.psd +0 -0
  68. data/public/{resources/ext/images → images/vendor/ext}/access/form/date-trigger.gif +0 -0
  69. data/public/{resources/ext/images → images/vendor/ext}/access/form/date-trigger.psd +0 -0
  70. data/public/{resources/ext/images → images/vendor/ext}/access/form/error-tip-corners.gif +0 -0
  71. data/public/{resources/ext/images → images/vendor/ext}/access/form/exclamation.gif +0 -0
  72. data/public/{resources/ext/images → images/vendor/ext}/access/form/radio.gif +0 -0
  73. data/public/{resources/ext/images → images/vendor/ext}/access/form/search-trigger.gif +0 -0
  74. data/public/{resources/ext/images → images/vendor/ext}/access/form/search-trigger.psd +0 -0
  75. data/public/{resources/ext/images → images/vendor/ext}/access/form/text-bg.gif +0 -0
  76. data/public/{resources/ext/images → images/vendor/ext}/access/form/trigger-tpl.gif +0 -0
  77. data/public/{resources/ext/images → images/vendor/ext}/access/form/trigger.gif +0 -0
  78. data/public/{resources/ext/images → images/vendor/ext}/access/form/trigger.psd +0 -0
  79. data/public/{resources/ext/images → images/vendor/ext}/access/grid/arrow-left-white.gif +0 -0
  80. data/public/{resources/ext/images → images/vendor/ext}/access/grid/arrow-right-white.gif +0 -0
  81. data/public/{resources/ext/images → images/vendor/ext}/access/grid/col-move-bottom.gif +0 -0
  82. data/public/{resources/ext/images → images/vendor/ext}/access/grid/col-move-top.gif +0 -0
  83. data/public/{resources/ext/images → images/vendor/ext}/access/grid/columns.gif +0 -0
  84. data/public/{resources/ext/images → images/vendor/ext}/access/grid/dirty.gif +0 -0
  85. data/public/{resources/ext/images → images/vendor/ext}/access/grid/done.gif +0 -0
  86. data/public/{resources/ext/images → images/vendor/ext}/access/grid/drop-no.gif +0 -0
  87. data/public/{resources/ext/images → images/vendor/ext}/access/grid/drop-yes.gif +0 -0
  88. data/public/{resources/ext/images → images/vendor/ext}/access/grid/footer-bg.gif +0 -0
  89. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid-blue-hd.gif +0 -0
  90. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid-blue-split.gif +0 -0
  91. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid-hrow.gif +0 -0
  92. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid-loading.gif +0 -0
  93. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid-split.gif +0 -0
  94. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid-vista-hd.gif +0 -0
  95. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid3-hd-btn.gif +0 -0
  96. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid3-hrow-over.gif +0 -0
  97. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid3-hrow.gif +0 -0
  98. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid3-special-col-bg.gif +0 -0
  99. data/public/{resources/ext/images → images/vendor/ext}/access/grid/grid3-special-col-sel-bg.gif +0 -0
  100. data/public/{resources/ext/images → images/vendor/ext}/access/grid/group-by.gif +0 -0
  101. data/public/{resources/ext/images → images/vendor/ext}/access/grid/group-collapse.gif +0 -0
  102. data/public/{resources/ext/images → images/vendor/ext}/access/grid/group-expand-sprite.gif +0 -0
  103. data/public/{resources/ext/images → images/vendor/ext}/access/grid/group-expand.gif +0 -0
  104. data/public/{resources/ext/images → images/vendor/ext}/access/grid/hd-pop.gif +0 -0
  105. data/public/{resources/ext/images → images/vendor/ext}/access/grid/hmenu-asc.gif +0 -0
  106. data/public/{resources/ext/images → images/vendor/ext}/access/grid/hmenu-desc.gif +0 -0
  107. data/public/{resources/ext/images → images/vendor/ext}/access/grid/hmenu-lock.gif +0 -0
  108. data/public/{resources/ext/images → images/vendor/ext}/access/grid/hmenu-lock.png +0 -0
  109. data/public/{resources/ext/images → images/vendor/ext}/access/grid/hmenu-unlock.gif +0 -0
  110. data/public/{resources/ext/images → images/vendor/ext}/access/grid/hmenu-unlock.png +0 -0
  111. data/public/{resources/ext/images → images/vendor/ext}/access/grid/invalid_line.gif +0 -0
  112. data/public/{resources/ext/images → images/vendor/ext}/access/grid/loading.gif +0 -0
  113. data/public/{resources/ext/images → images/vendor/ext}/access/grid/mso-hd.gif +0 -0
  114. data/public/{resources/ext/images → images/vendor/ext}/access/grid/nowait.gif +0 -0
  115. data/public/{resources/ext/images → images/vendor/ext}/access/grid/page-first-disabled.gif +0 -0
  116. data/public/{resources/ext/images → images/vendor/ext}/access/grid/page-first.gif +0 -0
  117. data/public/{resources/ext/images → images/vendor/ext}/access/grid/page-last-disabled.gif +0 -0
  118. data/public/{resources/ext/images → images/vendor/ext}/access/grid/page-last.gif +0 -0
  119. data/public/{resources/ext/images → images/vendor/ext}/access/grid/page-next-disabled.gif +0 -0
  120. data/public/{resources/ext/images → images/vendor/ext}/access/grid/page-next.gif +0 -0
  121. data/public/{resources/ext/images → images/vendor/ext}/access/grid/page-prev-disabled.gif +0 -0
  122. data/public/{resources/ext/images → images/vendor/ext}/access/grid/page-prev.gif +0 -0
  123. data/public/{resources/ext/images → images/vendor/ext}/access/grid/pick-button.gif +0 -0
  124. data/public/{resources/ext/images → images/vendor/ext}/access/grid/refresh.gif +0 -0
  125. data/public/{resources/ext/images → images/vendor/ext}/access/grid/row-check-sprite.gif +0 -0
  126. data/public/{resources/ext/images → images/vendor/ext}/access/grid/row-expand-sprite.gif +0 -0
  127. data/public/{resources/ext/images → images/vendor/ext}/access/grid/row-over.gif +0 -0
  128. data/public/{resources/ext/images → images/vendor/ext}/access/grid/row-sel.gif +0 -0
  129. data/public/{resources/ext/images → images/vendor/ext}/access/grid/sort-hd.gif +0 -0
  130. data/public/{resources/ext/images → images/vendor/ext}/access/grid/sort_asc.gif +0 -0
  131. data/public/{resources/ext/images → images/vendor/ext}/access/grid/sort_desc.gif +0 -0
  132. data/public/{resources/ext/images → images/vendor/ext}/access/grid/wait.gif +0 -0
  133. data/public/{resources/ext/images → images/vendor/ext}/access/menu/checked.gif +0 -0
  134. data/public/{resources/ext/images → images/vendor/ext}/access/menu/group-checked.gif +0 -0
  135. data/public/{resources/ext/images → images/vendor/ext}/access/menu/item-over.gif +0 -0
  136. data/public/{resources/ext/images → images/vendor/ext}/access/menu/menu-parent.gif +0 -0
  137. data/public/{resources/ext/images → images/vendor/ext}/access/menu/menu.gif +0 -0
  138. data/public/{resources/ext/images → images/vendor/ext}/access/menu/unchecked.gif +0 -0
  139. data/public/{resources/ext/images → images/vendor/ext}/access/panel/corners-sprite.gif +0 -0
  140. data/public/{resources/ext/images → images/vendor/ext}/access/panel/left-right.gif +0 -0
  141. data/public/{resources/ext/images → images/vendor/ext}/access/panel/light-hd.gif +0 -0
  142. data/public/{resources/ext/images → images/vendor/ext}/access/panel/tool-sprite-tpl.gif +0 -0
  143. data/public/{resources/ext/images → images/vendor/ext}/access/panel/tool-sprites.gif +0 -0
  144. data/public/{resources/ext/images → images/vendor/ext}/access/panel/tools-sprites-trans.gif +0 -0
  145. data/public/{resources/ext/images → images/vendor/ext}/access/panel/top-bottom.gif +0 -0
  146. data/public/{resources/ext/images → images/vendor/ext}/access/panel/white-corners-sprite.gif +0 -0
  147. data/public/{resources/ext/images → images/vendor/ext}/access/panel/white-left-right.gif +0 -0
  148. data/public/{resources/ext/images → images/vendor/ext}/access/panel/white-top-bottom.gif +0 -0
  149. data/public/{resources/ext/images → images/vendor/ext}/access/progress/progress-bg.gif +0 -0
  150. data/public/{resources/ext/images → images/vendor/ext}/access/qtip/close.gif +0 -0
  151. data/public/{resources/ext/images → images/vendor/ext}/access/qtip/tip-anchor-sprite.gif +0 -0
  152. data/public/{resources/ext/images → images/vendor/ext}/access/qtip/tip-sprite.gif +0 -0
  153. data/public/{resources/ext/images → images/vendor/ext}/access/shared/glass-bg.gif +0 -0
  154. data/public/{resources/ext/images → images/vendor/ext}/access/shared/hd-sprite.gif +0 -0
  155. data/public/{resources/ext/images → images/vendor/ext}/access/shared/left-btn.gif +0 -0
  156. data/public/{resources/ext/images → images/vendor/ext}/access/shared/right-btn.gif +0 -0
  157. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/e-handle-dark.gif +0 -0
  158. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/e-handle.gif +0 -0
  159. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/ne-handle-dark.gif +0 -0
  160. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/ne-handle.gif +0 -0
  161. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/nw-handle-dark.gif +0 -0
  162. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/nw-handle.gif +0 -0
  163. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/s-handle-dark.gif +0 -0
  164. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/s-handle.gif +0 -0
  165. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/se-handle-dark.gif +0 -0
  166. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/se-handle.gif +0 -0
  167. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/square.gif +0 -0
  168. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/sw-handle-dark.gif +0 -0
  169. data/public/{resources/ext/images → images/vendor/ext}/access/sizer/sw-handle.gif +0 -0
  170. data/public/{resources/ext/images → images/vendor/ext}/access/slider/slider-bg.png +0 -0
  171. data/public/{resources/ext/images → images/vendor/ext}/access/slider/slider-thumb.png +0 -0
  172. data/public/{resources/ext/images → images/vendor/ext}/access/slider/slider-v-bg.png +0 -0
  173. data/public/{resources/ext/images → images/vendor/ext}/access/slider/slider-v-thumb.png +0 -0
  174. data/public/{resources/ext/images → images/vendor/ext}/access/tabs/scroll-left.gif +0 -0
  175. data/public/{resources/ext/images → images/vendor/ext}/access/tabs/scroll-right.gif +0 -0
  176. data/public/{resources/ext/images → images/vendor/ext}/access/tabs/tab-btm-inactive-left-bg.gif +0 -0
  177. data/public/{resources/ext/images → images/vendor/ext}/access/tabs/tab-btm-inactive-right-bg.gif +0 -0
  178. data/public/{resources/ext/images → images/vendor/ext}/access/tabs/tab-btm-left-bg.gif +0 -0
  179. data/public/{resources/ext/images → images/vendor/ext}/access/tabs/tab-btm-right-bg.gif +0 -0
  180. data/public/{resources/ext/images → images/vendor/ext}/access/tabs/tab-close.gif +0 -0
  181. data/public/{resources/ext/images → images/vendor/ext}/access/tabs/tab-strip-bg.gif +0 -0
  182. data/public/{resources/ext/images → images/vendor/ext}/access/tabs/tab-strip-btm-bg.gif +0 -0
  183. data/public/{resources/ext/images → images/vendor/ext}/access/tabs/tabs-sprite.gif +0 -0
  184. data/public/{resources/ext/images → images/vendor/ext}/access/toolbar/bg.gif +0 -0
  185. data/public/{resources/ext/images → images/vendor/ext}/access/toolbar/btn-arrow-light.gif +0 -0
  186. data/public/{resources/ext/images → images/vendor/ext}/access/toolbar/btn-arrow.gif +0 -0
  187. data/public/{resources/ext/images → images/vendor/ext}/access/toolbar/btn-over-bg.gif +0 -0
  188. data/public/{resources/ext/images → images/vendor/ext}/access/toolbar/gray-bg.gif +0 -0
  189. data/public/{resources/ext/images → images/vendor/ext}/access/toolbar/more.gif +0 -0
  190. data/public/{resources/ext/images → images/vendor/ext}/access/toolbar/s-arrow-bo.gif +0 -0
  191. data/public/{resources/ext/images → images/vendor/ext}/access/toolbar/tb-btn-sprite.gif +0 -0
  192. data/public/{resources/ext/images → images/vendor/ext}/access/toolbar/tb-xl-btn-sprite.gif +0 -0
  193. data/public/{resources/ext/images → images/vendor/ext}/access/toolbar/tb-xl-sep.gif +0 -0
  194. data/public/{resources/ext/images → images/vendor/ext}/access/tree/arrows.gif +0 -0
  195. data/public/{resources/ext/images → images/vendor/ext}/access/tree/drop-add.gif +0 -0
  196. data/public/{resources/ext/images → images/vendor/ext}/access/tree/drop-between.gif +0 -0
  197. data/public/{resources/ext/images → images/vendor/ext}/access/tree/drop-no.gif +0 -0
  198. data/public/{resources/ext/images → images/vendor/ext}/access/tree/drop-over.gif +0 -0
  199. data/public/{resources/ext/images → images/vendor/ext}/access/tree/drop-under.gif +0 -0
  200. data/public/{resources/ext/images → images/vendor/ext}/access/tree/drop-yes.gif +0 -0
  201. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow-end-minus-nl.gif +0 -0
  202. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow-end-minus.gif +0 -0
  203. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow-end-plus-nl.gif +0 -0
  204. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow-end-plus.gif +0 -0
  205. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow-end.gif +0 -0
  206. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow-line.gif +0 -0
  207. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow-minus-nl.gif +0 -0
  208. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow-minus.gif +0 -0
  209. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow-plus-nl.gif +0 -0
  210. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow-plus.gif +0 -0
  211. data/public/{resources/ext/images → images/vendor/ext}/access/tree/elbow.gif +0 -0
  212. data/public/{resources/ext/images → images/vendor/ext}/access/tree/folder-open.gif +0 -0
  213. data/public/{resources/ext/images → images/vendor/ext}/access/tree/folder.gif +0 -0
  214. data/public/{resources/ext/images → images/vendor/ext}/access/tree/leaf.gif +0 -0
  215. data/public/{resources/ext/images → images/vendor/ext}/access/tree/loading.gif +0 -0
  216. data/public/{resources/ext/images → images/vendor/ext}/access/tree/s.gif +0 -0
  217. data/public/{resources/ext/images → images/vendor/ext}/access/window/icon-error.gif +0 -0
  218. data/public/{resources/ext/images → images/vendor/ext}/access/window/icon-info.gif +0 -0
  219. data/public/{resources/ext/images → images/vendor/ext}/access/window/icon-question.gif +0 -0
  220. data/public/{resources/ext/images → images/vendor/ext}/access/window/icon-warning.gif +0 -0
  221. data/public/{resources/ext/images → images/vendor/ext}/access/window/left-corners.png +0 -0
  222. data/public/{resources/ext/images → images/vendor/ext}/access/window/left-right.png +0 -0
  223. data/public/{resources/ext/images → images/vendor/ext}/access/window/right-corners.png +0 -0
  224. data/public/{resources/ext/images → images/vendor/ext}/access/window/top-bottom.png +0 -0
  225. data/public/{resources/ext/images → images/vendor/ext}/default/box/corners-blue.gif +0 -0
  226. data/public/{resources/ext/images → images/vendor/ext}/default/box/corners.gif +0 -0
  227. data/public/{resources/ext/images → images/vendor/ext}/default/box/l-blue.gif +0 -0
  228. data/public/{resources/ext/images → images/vendor/ext}/default/box/l.gif +0 -0
  229. data/public/{resources/ext/images → images/vendor/ext}/default/box/r-blue.gif +0 -0
  230. data/public/{resources/ext/images → images/vendor/ext}/default/box/r.gif +0 -0
  231. data/public/{resources/ext/images → images/vendor/ext}/default/box/tb-blue.gif +0 -0
  232. data/public/{resources/ext/images → images/vendor/ext}/default/box/tb.gif +0 -0
  233. data/public/{resources/ext/images → images/vendor/ext}/default/button/arrow.gif +0 -0
  234. data/public/{resources/ext/images → images/vendor/ext}/default/button/btn.gif +0 -0
  235. data/public/{resources/ext/images → images/vendor/ext}/default/button/group-cs.gif +0 -0
  236. data/public/{resources/ext/images → images/vendor/ext}/default/button/group-lr.gif +0 -0
  237. data/public/{resources/ext/images → images/vendor/ext}/default/button/group-tb.gif +0 -0
  238. data/public/{resources/ext/images → images/vendor/ext}/default/button/s-arrow-b-noline.gif +0 -0
  239. data/public/{resources/ext/images → images/vendor/ext}/default/button/s-arrow-b.gif +0 -0
  240. data/public/{resources/ext/images → images/vendor/ext}/default/button/s-arrow-bo.gif +0 -0
  241. data/public/{resources/ext/images → images/vendor/ext}/default/button/s-arrow-noline.gif +0 -0
  242. data/public/{resources/ext/images → images/vendor/ext}/default/button/s-arrow-o.gif +0 -0
  243. data/public/{resources/ext/images → images/vendor/ext}/default/button/s-arrow.gif +0 -0
  244. data/public/{resources/ext/images → images/vendor/ext}/default/dd/drop-add.gif +0 -0
  245. data/public/{resources/ext/images → images/vendor/ext}/default/dd/drop-no.gif +0 -0
  246. data/public/{resources/ext/images → images/vendor/ext}/default/dd/drop-yes.gif +0 -0
  247. data/public/{resources/ext/images → images/vendor/ext}/default/editor/tb-sprite.gif +0 -0
  248. data/public/{resources/ext/images → images/vendor/ext}/default/form/checkbox.gif +0 -0
  249. data/public/{resources/ext/images → images/vendor/ext}/default/form/clear-trigger.gif +0 -0
  250. data/public/{resources/ext/images → images/vendor/ext}/default/form/clear-trigger.psd +0 -0
  251. data/public/{resources/ext/images → images/vendor/ext}/default/form/date-trigger.gif +0 -0
  252. data/public/{resources/ext/images → images/vendor/ext}/default/form/date-trigger.psd +0 -0
  253. data/public/{resources/ext/images → images/vendor/ext}/default/form/error-tip-corners.gif +0 -0
  254. data/public/{resources/ext/images → images/vendor/ext}/default/form/exclamation.gif +0 -0
  255. data/public/{resources/ext/images → images/vendor/ext}/default/form/radio.gif +0 -0
  256. data/public/{resources/ext/images → images/vendor/ext}/default/form/search-trigger.gif +0 -0
  257. data/public/{resources/ext/images → images/vendor/ext}/default/form/search-trigger.psd +0 -0
  258. data/public/{resources/ext/images → images/vendor/ext}/default/form/text-bg.gif +0 -0
  259. data/public/{resources/ext/images → images/vendor/ext}/default/form/trigger-square.gif +0 -0
  260. data/public/{resources/ext/images → images/vendor/ext}/default/form/trigger-square.psd +0 -0
  261. data/public/{resources/ext/images → images/vendor/ext}/default/form/trigger-tpl.gif +0 -0
  262. data/public/{resources/ext/images → images/vendor/ext}/default/form/trigger.gif +0 -0
  263. data/public/{resources/ext/images → images/vendor/ext}/default/form/trigger.psd +0 -0
  264. data/public/{resources/ext/images → images/vendor/ext}/default/gradient-bg.gif +0 -0
  265. data/public/{resources/ext/images → images/vendor/ext}/default/grid/arrow-left-white.gif +0 -0
  266. data/public/{resources/ext/images → images/vendor/ext}/default/grid/arrow-right-white.gif +0 -0
  267. data/public/{resources/ext/images → images/vendor/ext}/default/grid/col-move-bottom.gif +0 -0
  268. data/public/{resources/ext/images → images/vendor/ext}/default/grid/col-move-top.gif +0 -0
  269. data/public/{resources/ext/images → images/vendor/ext}/default/grid/columns.gif +0 -0
  270. data/public/{resources/ext/images → images/vendor/ext}/default/grid/dirty.gif +0 -0
  271. data/public/{resources/ext/images → images/vendor/ext}/default/grid/done.gif +0 -0
  272. data/public/{resources/ext/images → images/vendor/ext}/default/grid/drop-no.gif +0 -0
  273. data/public/{resources/ext/images → images/vendor/ext}/default/grid/drop-yes.gif +0 -0
  274. data/public/{resources/ext/images → images/vendor/ext}/default/grid/footer-bg.gif +0 -0
  275. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid-blue-hd.gif +0 -0
  276. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid-blue-split.gif +0 -0
  277. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid-hrow.gif +0 -0
  278. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid-loading.gif +0 -0
  279. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid-split.gif +0 -0
  280. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid-vista-hd.gif +0 -0
  281. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid3-hd-btn.gif +0 -0
  282. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid3-hrow-over.gif +0 -0
  283. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid3-hrow.gif +0 -0
  284. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid3-rowheader.gif +0 -0
  285. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid3-special-col-bg.gif +0 -0
  286. data/public/{resources/ext/images → images/vendor/ext}/default/grid/grid3-special-col-sel-bg.gif +0 -0
  287. data/public/{resources/ext/images → images/vendor/ext}/default/grid/group-by.gif +0 -0
  288. data/public/{resources/ext/images → images/vendor/ext}/default/grid/group-collapse.gif +0 -0
  289. data/public/{resources/ext/images → images/vendor/ext}/default/grid/group-expand-sprite.gif +0 -0
  290. data/public/{resources/ext/images → images/vendor/ext}/default/grid/group-expand.gif +0 -0
  291. data/public/{resources/ext/images → images/vendor/ext}/default/grid/hd-pop.gif +0 -0
  292. data/public/{resources/ext/images → images/vendor/ext}/default/grid/hmenu-asc.gif +0 -0
  293. data/public/{resources/ext/images → images/vendor/ext}/default/grid/hmenu-desc.gif +0 -0
  294. data/public/{resources/ext/images → images/vendor/ext}/default/grid/hmenu-lock.gif +0 -0
  295. data/public/{resources/ext/images → images/vendor/ext}/default/grid/hmenu-lock.png +0 -0
  296. data/public/{resources/ext/images → images/vendor/ext}/default/grid/hmenu-unlock.gif +0 -0
  297. data/public/{resources/ext/images → images/vendor/ext}/default/grid/hmenu-unlock.png +0 -0
  298. data/public/{resources/ext/images → images/vendor/ext}/default/grid/invalid_line.gif +0 -0
  299. data/public/{resources/ext/images → images/vendor/ext}/default/grid/loading.gif +0 -0
  300. data/public/{resources/ext/images → images/vendor/ext}/default/grid/mso-hd.gif +0 -0
  301. data/public/{resources/ext/images → images/vendor/ext}/default/grid/nowait.gif +0 -0
  302. data/public/{resources/ext/images → images/vendor/ext}/default/grid/page-first-disabled.gif +0 -0
  303. data/public/{resources/ext/images → images/vendor/ext}/default/grid/page-first.gif +0 -0
  304. data/public/{resources/ext/images → images/vendor/ext}/default/grid/page-last-disabled.gif +0 -0
  305. data/public/{resources/ext/images → images/vendor/ext}/default/grid/page-last.gif +0 -0
  306. data/public/{resources/ext/images → images/vendor/ext}/default/grid/page-next-disabled.gif +0 -0
  307. data/public/{resources/ext/images → images/vendor/ext}/default/grid/page-next.gif +0 -0
  308. data/public/{resources/ext/images → images/vendor/ext}/default/grid/page-prev-disabled.gif +0 -0
  309. data/public/{resources/ext/images → images/vendor/ext}/default/grid/page-prev.gif +0 -0
  310. data/public/{resources/ext/images → images/vendor/ext}/default/grid/pick-button.gif +0 -0
  311. data/public/{resources/ext/images → images/vendor/ext}/default/grid/refresh-disabled.gif +0 -0
  312. data/public/{resources/ext/images → images/vendor/ext}/default/grid/refresh.gif +0 -0
  313. data/public/{resources/ext/images → images/vendor/ext}/default/grid/row-check-sprite.gif +0 -0
  314. data/public/{resources/ext/images → images/vendor/ext}/default/grid/row-expand-sprite.gif +0 -0
  315. data/public/{resources/ext/images → images/vendor/ext}/default/grid/row-over.gif +0 -0
  316. data/public/{resources/ext/images → images/vendor/ext}/default/grid/row-sel.gif +0 -0
  317. data/public/{resources/ext/images → images/vendor/ext}/default/grid/sort-hd.gif +0 -0
  318. data/public/{resources/ext/images → images/vendor/ext}/default/grid/sort_asc.gif +0 -0
  319. data/public/{resources/ext/images → images/vendor/ext}/default/grid/sort_desc.gif +0 -0
  320. data/public/{resources/ext/images → images/vendor/ext}/default/grid/wait.gif +0 -0
  321. data/public/{resources/ext/images → images/vendor/ext}/default/layout/collapse.gif +0 -0
  322. data/public/{resources/ext/images → images/vendor/ext}/default/layout/expand.gif +0 -0
  323. data/public/{resources/ext/images → images/vendor/ext}/default/layout/gradient-bg.gif +0 -0
  324. data/public/{resources/ext/images → images/vendor/ext}/default/layout/mini-bottom.gif +0 -0
  325. data/public/{resources/ext/images → images/vendor/ext}/default/layout/mini-left.gif +0 -0
  326. data/public/{resources/ext/images → images/vendor/ext}/default/layout/mini-right.gif +0 -0
  327. data/public/{resources/ext/images → images/vendor/ext}/default/layout/mini-top.gif +0 -0
  328. data/public/{resources/ext/images → images/vendor/ext}/default/layout/ns-collapse.gif +0 -0
  329. data/public/{resources/ext/images → images/vendor/ext}/default/layout/ns-expand.gif +0 -0
  330. data/public/{resources/ext/images → images/vendor/ext}/default/layout/panel-close.gif +0 -0
  331. data/public/{resources/ext/images → images/vendor/ext}/default/layout/panel-title-bg.gif +0 -0
  332. data/public/{resources/ext/images → images/vendor/ext}/default/layout/panel-title-light-bg.gif +0 -0
  333. data/public/{resources/ext/images → images/vendor/ext}/default/layout/stick.gif +0 -0
  334. data/public/{resources/ext/images → images/vendor/ext}/default/layout/stuck.gif +0 -0
  335. data/public/{resources/ext/images → images/vendor/ext}/default/layout/tab-close-on.gif +0 -0
  336. data/public/{resources/ext/images → images/vendor/ext}/default/layout/tab-close.gif +0 -0
  337. data/public/{resources/ext/images → images/vendor/ext}/default/menu/checked.gif +0 -0
  338. data/public/{resources/ext/images → images/vendor/ext}/default/menu/group-checked.gif +0 -0
  339. data/public/{resources/ext/images → images/vendor/ext}/default/menu/item-over.gif +0 -0
  340. data/public/{resources/ext/images → images/vendor/ext}/default/menu/menu-parent.gif +0 -0
  341. data/public/{resources/ext/images → images/vendor/ext}/default/menu/menu.gif +0 -0
  342. data/public/{resources/ext/images → images/vendor/ext}/default/menu/unchecked.gif +0 -0
  343. data/public/{resources/ext/images → images/vendor/ext}/default/panel/corners-sprite.gif +0 -0
  344. data/public/{resources/ext/images → images/vendor/ext}/default/panel/left-right.gif +0 -0
  345. data/public/{resources/ext/images → images/vendor/ext}/default/panel/light-hd.gif +0 -0
  346. data/public/{resources/ext/images → images/vendor/ext}/default/panel/tool-sprite-tpl.gif +0 -0
  347. data/public/{resources/ext/images/yourtheme → images/vendor/ext/default}/panel/tool-sprites.gif +0 -0
  348. data/public/{resources/ext/images → images/vendor/ext}/default/panel/tools-sprites-trans.gif +0 -0
  349. data/public/{resources/ext/images → images/vendor/ext}/default/panel/top-bottom.gif +0 -0
  350. data/public/{resources/ext/images → images/vendor/ext}/default/panel/top-bottom.png +0 -0
  351. data/public/{resources/ext/images → images/vendor/ext}/default/panel/white-corners-sprite.gif +0 -0
  352. data/public/{resources/ext/images → images/vendor/ext}/default/panel/white-left-right.gif +0 -0
  353. data/public/{resources/ext/images → images/vendor/ext}/default/panel/white-top-bottom.gif +0 -0
  354. data/public/{resources/ext/images → images/vendor/ext}/default/progress/progress-bg.gif +0 -0
  355. data/public/{resources/ext/images → images/vendor/ext}/default/qtip/bg.gif +0 -0
  356. data/public/{resources/ext/images → images/vendor/ext}/default/qtip/close.gif +0 -0
  357. data/public/{resources/ext/images → images/vendor/ext}/default/qtip/tip-anchor-sprite.gif +0 -0
  358. data/public/{resources/ext/images → images/vendor/ext}/default/qtip/tip-sprite.gif +0 -0
  359. data/public/{resources/ext/images → images/vendor/ext}/default/s.gif +0 -0
  360. data/public/{resources/ext/images → images/vendor/ext}/default/shadow-c.png +0 -0
  361. data/public/{resources/ext/images → images/vendor/ext}/default/shadow-lr.png +0 -0
  362. data/public/{resources/ext/images → images/vendor/ext}/default/shadow.png +0 -0
  363. data/public/{resources/ext/images → images/vendor/ext}/default/shared/blue-loading.gif +0 -0
  364. data/public/{resources/ext/images → images/vendor/ext}/default/shared/calendar.gif +0 -0
  365. data/public/{resources/ext/images → images/vendor/ext}/default/shared/glass-bg.gif +0 -0
  366. data/public/{resources/ext/images → images/vendor/ext}/default/shared/hd-sprite.gif +0 -0
  367. data/public/{resources/ext/images → images/vendor/ext}/default/shared/large-loading.gif +0 -0
  368. data/public/{resources/ext/images → images/vendor/ext}/default/shared/left-btn.gif +0 -0
  369. data/public/{resources/ext/images → images/vendor/ext}/default/shared/loading-balls.gif +0 -0
  370. data/public/{resources/ext/images → images/vendor/ext}/default/shared/right-btn.gif +0 -0
  371. data/public/{resources/ext/images → images/vendor/ext}/default/shared/warning.gif +0 -0
  372. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/e-handle-dark.gif +0 -0
  373. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/e-handle.gif +0 -0
  374. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/ne-handle-dark.gif +0 -0
  375. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/ne-handle.gif +0 -0
  376. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/nw-handle-dark.gif +0 -0
  377. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/nw-handle.gif +0 -0
  378. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/s-handle-dark.gif +0 -0
  379. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/s-handle.gif +0 -0
  380. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/se-handle-dark.gif +0 -0
  381. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/se-handle.gif +0 -0
  382. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/square.gif +0 -0
  383. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/sw-handle-dark.gif +0 -0
  384. data/public/{resources/ext/images → images/vendor/ext}/default/sizer/sw-handle.gif +0 -0
  385. data/public/{resources/ext/images → images/vendor/ext}/default/slider/slider-bg.png +0 -0
  386. data/public/{resources/ext/images → images/vendor/ext}/default/slider/slider-thumb.png +0 -0
  387. data/public/{resources/ext/images → images/vendor/ext}/default/slider/slider-v-bg.png +0 -0
  388. data/public/{resources/ext/images → images/vendor/ext}/default/slider/slider-v-thumb.png +0 -0
  389. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/scroll-left.gif +0 -0
  390. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/scroll-right.gif +0 -0
  391. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/scroller-bg.gif +0 -0
  392. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tab-btm-inactive-left-bg.gif +0 -0
  393. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tab-btm-inactive-right-bg.gif +0 -0
  394. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tab-btm-left-bg.gif +0 -0
  395. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tab-btm-over-left-bg.gif +0 -0
  396. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tab-btm-over-right-bg.gif +0 -0
  397. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tab-btm-right-bg.gif +0 -0
  398. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tab-close.gif +0 -0
  399. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tab-strip-bg.gif +0 -0
  400. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tab-strip-bg.png +0 -0
  401. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tab-strip-btm-bg.gif +0 -0
  402. data/public/{resources/ext/images → images/vendor/ext}/default/tabs/tabs-sprite.gif +0 -0
  403. data/public/{resources/ext/images → images/vendor/ext}/default/toolbar/bg.gif +0 -0
  404. data/public/{resources/ext/images → images/vendor/ext}/default/toolbar/btn-arrow-light.gif +0 -0
  405. data/public/{resources/ext/images → images/vendor/ext}/default/toolbar/btn-arrow.gif +0 -0
  406. data/public/{resources/ext/images → images/vendor/ext}/default/toolbar/btn-over-bg.gif +0 -0
  407. data/public/{resources/ext/images → images/vendor/ext}/default/toolbar/gray-bg.gif +0 -0
  408. data/public/{resources/ext/images → images/vendor/ext}/default/toolbar/more.gif +0 -0
  409. data/public/{resources/ext/images → images/vendor/ext}/default/toolbar/tb-bg.gif +0 -0
  410. data/public/{resources/ext/images → images/vendor/ext}/default/toolbar/tb-btn-sprite.gif +0 -0
  411. data/public/{resources/ext/images → images/vendor/ext}/default/toolbar/tb-xl-btn-sprite.gif +0 -0
  412. data/public/{resources/ext/images → images/vendor/ext}/default/toolbar/tb-xl-sep.gif +0 -0
  413. data/public/{resources/ext/images → images/vendor/ext}/default/tree/arrows.gif +0 -0
  414. data/public/{resources/ext/images → images/vendor/ext}/default/tree/drop-add.gif +0 -0
  415. data/public/{resources/ext/images → images/vendor/ext}/default/tree/drop-between.gif +0 -0
  416. data/public/{resources/ext/images → images/vendor/ext}/default/tree/drop-no.gif +0 -0
  417. data/public/{resources/ext/images → images/vendor/ext}/default/tree/drop-over.gif +0 -0
  418. data/public/{resources/ext/images → images/vendor/ext}/default/tree/drop-under.gif +0 -0
  419. data/public/{resources/ext/images → images/vendor/ext}/default/tree/drop-yes.gif +0 -0
  420. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow-end-minus-nl.gif +0 -0
  421. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow-end-minus.gif +0 -0
  422. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow-end-plus-nl.gif +0 -0
  423. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow-end-plus.gif +0 -0
  424. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow-end.gif +0 -0
  425. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow-line.gif +0 -0
  426. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow-minus-nl.gif +0 -0
  427. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow-minus.gif +0 -0
  428. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow-plus-nl.gif +0 -0
  429. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow-plus.gif +0 -0
  430. data/public/{resources/ext/images → images/vendor/ext}/default/tree/elbow.gif +0 -0
  431. data/public/{resources/ext/images → images/vendor/ext}/default/tree/folder-open.gif +0 -0
  432. data/public/{resources/ext/images → images/vendor/ext}/default/tree/folder.gif +0 -0
  433. data/public/{resources/ext/images → images/vendor/ext}/default/tree/leaf.gif +0 -0
  434. data/public/{resources/ext/images → images/vendor/ext}/default/tree/loading.gif +0 -0
  435. data/public/{resources/ext/images → images/vendor/ext}/default/tree/s.gif +0 -0
  436. data/public/{resources/ext/images → images/vendor/ext}/default/window/icon-error.gif +0 -0
  437. data/public/{resources/ext/images → images/vendor/ext}/default/window/icon-info.gif +0 -0
  438. data/public/{resources/ext/images → images/vendor/ext}/default/window/icon-question.gif +0 -0
  439. data/public/{resources/ext/images → images/vendor/ext}/default/window/icon-warning.gif +0 -0
  440. data/public/{resources/ext/images → images/vendor/ext}/default/window/left-corners.png +0 -0
  441. data/public/{resources/ext/images → images/vendor/ext}/default/window/left-corners.psd +0 -0
  442. data/public/{resources/ext/images → images/vendor/ext}/default/window/left-right.png +0 -0
  443. data/public/{resources/ext/images → images/vendor/ext}/default/window/left-right.psd +0 -0
  444. data/public/{resources/ext/images → images/vendor/ext}/default/window/right-corners.png +0 -0
  445. data/public/{resources/ext/images → images/vendor/ext}/default/window/right-corners.psd +0 -0
  446. data/public/{resources/ext/images → images/vendor/ext}/default/window/top-bottom.png +0 -0
  447. data/public/{resources/ext/images → images/vendor/ext}/default/window/top-bottom.psd +0 -0
  448. data/public/{resources/ext/images → images/vendor/ext}/gray/button/btn-arrow.gif +0 -0
  449. data/public/{resources/ext/images → images/vendor/ext}/gray/button/btn-sprite.gif +0 -0
  450. data/public/{resources/ext/images → images/vendor/ext}/gray/button/btn.gif +0 -0
  451. data/public/{resources/ext/images → images/vendor/ext}/gray/button/group-cs.gif +0 -0
  452. data/public/{resources/ext/images → images/vendor/ext}/gray/button/group-lr.gif +0 -0
  453. data/public/{resources/ext/images → images/vendor/ext}/gray/button/group-tb.gif +0 -0
  454. data/public/{resources/ext/images → images/vendor/ext}/gray/button/s-arrow-bo.gif +0 -0
  455. data/public/{resources/ext/images → images/vendor/ext}/gray/button/s-arrow-o.gif +0 -0
  456. data/public/{resources/ext/images → images/vendor/ext}/gray/form/clear-trigger.gif +0 -0
  457. data/public/{resources/ext/images → images/vendor/ext}/gray/form/date-trigger.gif +0 -0
  458. data/public/{resources/ext/images → images/vendor/ext}/gray/form/search-trigger.gif +0 -0
  459. data/public/{resources/ext/images → images/vendor/ext}/gray/form/trigger-square.gif +0 -0
  460. data/public/{resources/ext/images → images/vendor/ext}/gray/form/trigger.gif +0 -0
  461. data/public/{resources/ext/images → images/vendor/ext}/gray/gradient-bg.gif +0 -0
  462. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/col-move-bottom.gif +0 -0
  463. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/col-move-top.gif +0 -0
  464. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/grid3-hd-btn.gif +0 -0
  465. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/grid3-hrow-over.gif +0 -0
  466. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/grid3-hrow-over2.gif +0 -0
  467. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/grid3-hrow.gif +0 -0
  468. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/grid3-hrow2.gif +0 -0
  469. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/grid3-special-col-bg.gif +0 -0
  470. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/grid3-special-col-bg2.gif +0 -0
  471. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/grid3-special-col-sel-bg.gif +0 -0
  472. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/group-collapse.gif +0 -0
  473. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/group-expand-sprite.gif +0 -0
  474. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/group-expand.gif +0 -0
  475. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/page-first.gif +0 -0
  476. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/page-last.gif +0 -0
  477. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/page-next.gif +0 -0
  478. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/page-prev.gif +0 -0
  479. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/refresh.gif +0 -0
  480. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/row-expand-sprite.gif +0 -0
  481. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/sort_asc.gif +0 -0
  482. data/public/{resources/ext/images → images/vendor/ext}/gray/grid/sort_desc.gif +0 -0
  483. data/public/{resources/ext/images → images/vendor/ext}/gray/menu/group-checked.gif +0 -0
  484. data/public/{resources/ext/images → images/vendor/ext}/gray/menu/item-over-disabled.gif +0 -0
  485. data/public/{resources/ext/images → images/vendor/ext}/gray/menu/item-over.gif +0 -0
  486. data/public/{resources/ext/images → images/vendor/ext}/gray/menu/menu-parent.gif +0 -0
  487. data/public/{resources/ext/images → images/vendor/ext}/gray/panel/corners-sprite.gif +0 -0
  488. data/public/{resources/ext/images → images/vendor/ext}/gray/panel/left-right.gif +0 -0
  489. data/public/{resources/ext/images → images/vendor/ext}/gray/panel/light-hd.gif +0 -0
  490. data/public/{resources/ext/images → images/vendor/ext}/gray/panel/tool-sprite-tpl.gif +0 -0
  491. data/public/images/vendor/ext/gray/panel/tool-sprites.gif +0 -0
  492. data/public/{resources/ext/images → images/vendor/ext}/gray/panel/tools-sprites-trans.gif +0 -0
  493. data/public/{resources/ext/images → images/vendor/ext}/gray/panel/top-bottom.gif +0 -0
  494. data/public/{resources/ext/images → images/vendor/ext}/gray/panel/top-bottom.png +0 -0
  495. data/public/{resources/ext/images → images/vendor/ext}/gray/panel/white-corners-sprite.gif +0 -0
  496. data/public/{resources/ext/images → images/vendor/ext}/gray/panel/white-left-right.gif +0 -0
  497. data/public/{resources/ext/images → images/vendor/ext}/gray/panel/white-top-bottom.gif +0 -0
  498. data/public/{resources/ext/images → images/vendor/ext}/gray/progress/progress-bg.gif +0 -0
  499. data/public/{resources/ext/images → images/vendor/ext}/gray/qtip/bg.gif +0 -0
  500. data/public/{resources/ext/images → images/vendor/ext}/gray/qtip/close.gif +0 -0
  501. data/public/{resources/ext/images → images/vendor/ext}/gray/qtip/tip-anchor-sprite.gif +0 -0
  502. data/public/{resources/ext/images → images/vendor/ext}/gray/qtip/tip-sprite.gif +0 -0
  503. data/public/{resources/ext/images → images/vendor/ext}/gray/s.gif +0 -0
  504. data/public/{resources/ext/images → images/vendor/ext}/gray/shared/hd-sprite.gif +0 -0
  505. data/public/{resources/ext/images → images/vendor/ext}/gray/shared/left-btn.gif +0 -0
  506. data/public/{resources/ext/images → images/vendor/ext}/gray/shared/right-btn.gif +0 -0
  507. data/public/{resources/ext/images → images/vendor/ext}/gray/sizer/e-handle.gif +0 -0
  508. data/public/{resources/ext/images → images/vendor/ext}/gray/sizer/ne-handle.gif +0 -0
  509. data/public/{resources/ext/images → images/vendor/ext}/gray/sizer/nw-handle.gif +0 -0
  510. data/public/{resources/ext/images → images/vendor/ext}/gray/sizer/s-handle.gif +0 -0
  511. data/public/{resources/ext/images → images/vendor/ext}/gray/sizer/se-handle.gif +0 -0
  512. data/public/{resources/ext/images → images/vendor/ext}/gray/sizer/square.gif +0 -0
  513. data/public/{resources/ext/images → images/vendor/ext}/gray/sizer/sw-handle.gif +0 -0
  514. data/public/{resources/ext/images → images/vendor/ext}/gray/slider/slider-thumb.png +0 -0
  515. data/public/{resources/ext/images → images/vendor/ext}/gray/slider/slider-v-thumb.png +0 -0
  516. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/scroll-left.gif +0 -0
  517. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/scroll-right.gif +0 -0
  518. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/scroller-bg.gif +0 -0
  519. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tab-btm-inactive-left-bg.gif +0 -0
  520. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tab-btm-inactive-right-bg.gif +0 -0
  521. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tab-btm-left-bg.gif +0 -0
  522. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tab-btm-over-left-bg.gif +0 -0
  523. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tab-btm-over-right-bg.gif +0 -0
  524. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tab-btm-right-bg.gif +0 -0
  525. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tab-close.gif +0 -0
  526. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tab-strip-bg.gif +0 -0
  527. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tab-strip-bg.png +0 -0
  528. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tab-strip-btm-bg.gif +0 -0
  529. data/public/{resources/ext/images → images/vendor/ext}/gray/tabs/tabs-sprite.gif +0 -0
  530. data/public/{resources/ext/images → images/vendor/ext}/gray/toolbar/bg.gif +0 -0
  531. data/public/{resources/ext/images → images/vendor/ext}/gray/toolbar/btn-arrow-light.gif +0 -0
  532. data/public/{resources/ext/images → images/vendor/ext}/gray/toolbar/btn-arrow.gif +0 -0
  533. data/public/{resources/ext/images → images/vendor/ext}/gray/toolbar/btn-over-bg.gif +0 -0
  534. data/public/{resources/ext/images → images/vendor/ext}/gray/toolbar/gray-bg.gif +0 -0
  535. data/public/{resources/ext/images → images/vendor/ext}/gray/toolbar/more.gif +0 -0
  536. data/public/{resources/ext/images → images/vendor/ext}/gray/toolbar/tb-bg.gif +0 -0
  537. data/public/{resources/ext/images → images/vendor/ext}/gray/toolbar/tb-btn-sprite.gif +0 -0
  538. data/public/{resources/ext/images → images/vendor/ext}/gray/tree/arrows.gif +0 -0
  539. data/public/{resources/ext/images → images/vendor/ext}/gray/tree/elbow-end-minus-nl.gif +0 -0
  540. data/public/{resources/ext/images → images/vendor/ext}/gray/tree/elbow-end-minus.gif +0 -0
  541. data/public/{resources/ext/images → images/vendor/ext}/gray/tree/elbow-end-plus-nl.gif +0 -0
  542. data/public/{resources/ext/images → images/vendor/ext}/gray/tree/elbow-end-plus.gif +0 -0
  543. data/public/{resources/ext/images → images/vendor/ext}/gray/window/icon-error.gif +0 -0
  544. data/public/{resources/ext/images → images/vendor/ext}/gray/window/icon-info.gif +0 -0
  545. data/public/{resources/ext/images → images/vendor/ext}/gray/window/icon-question.gif +0 -0
  546. data/public/{resources/ext/images → images/vendor/ext}/gray/window/icon-warning.gif +0 -0
  547. data/public/{resources/ext/images → images/vendor/ext}/gray/window/left-corners.png +0 -0
  548. data/public/{resources/ext/images → images/vendor/ext}/gray/window/left-right.png +0 -0
  549. data/public/{resources/ext/images → images/vendor/ext}/gray/window/right-corners.png +0 -0
  550. data/public/{resources/ext/images → images/vendor/ext}/gray/window/top-bottom.png +0 -0
  551. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/bg-center.gif +0 -0
  552. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/bg-left.gif +0 -0
  553. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/bg-right.gif +0 -0
  554. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/close.gif +0 -0
  555. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/collapse.gif +0 -0
  556. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/dlg-bg.gif +0 -0
  557. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/e-handle.gif +0 -0
  558. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/expand.gif +0 -0
  559. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/hd-sprite.gif +0 -0
  560. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/s-handle.gif +0 -0
  561. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/se-handle.gif +0 -0
  562. data/public/{resources/ext/images → images/vendor/ext}/vista/basic-dialog/w-handle.gif +0 -0
  563. data/public/{resources/ext/images → images/vendor/ext}/vista/gradient-bg.gif +0 -0
  564. data/public/{resources/ext/images → images/vendor/ext}/vista/grid/grid-split.gif +0 -0
  565. data/public/{resources/ext/images → images/vendor/ext}/vista/grid/grid-vista-hd.gif +0 -0
  566. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/collapse.gif +0 -0
  567. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/expand.gif +0 -0
  568. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/gradient-bg.gif +0 -0
  569. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/ns-collapse.gif +0 -0
  570. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/ns-expand.gif +0 -0
  571. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/panel-close.gif +0 -0
  572. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/panel-title-bg.gif +0 -0
  573. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/panel-title-light-bg.gif +0 -0
  574. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/stick.gif +0 -0
  575. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/tab-close-on.gif +0 -0
  576. data/public/{resources/ext/images → images/vendor/ext}/vista/layout/tab-close.gif +0 -0
  577. data/public/{resources/ext/images → images/vendor/ext}/vista/qtip/bg.gif +0 -0
  578. data/public/{resources/ext/images → images/vendor/ext}/vista/qtip/tip-sprite.gif +0 -0
  579. data/public/{resources/ext/images → images/vendor/ext}/vista/s.gif +0 -0
  580. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/e-handle-dark.gif +0 -0
  581. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/e-handle.gif +0 -0
  582. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/ne-handle-dark.gif +0 -0
  583. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/ne-handle.gif +0 -0
  584. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/nw-handle-dark.gif +0 -0
  585. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/nw-handle.gif +0 -0
  586. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/s-handle-dark.gif +0 -0
  587. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/s-handle.gif +0 -0
  588. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/se-handle-dark.gif +0 -0
  589. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/se-handle.gif +0 -0
  590. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/sw-handle-dark.gif +0 -0
  591. data/public/{resources/ext/images → images/vendor/ext}/vista/sizer/sw-handle.gif +0 -0
  592. data/public/{resources/ext/images → images/vendor/ext}/vista/tabs/tab-btm-inactive-left-bg.gif +0 -0
  593. data/public/{resources/ext/images → images/vendor/ext}/vista/tabs/tab-btm-inactive-right-bg.gif +0 -0
  594. data/public/{resources/ext/images → images/vendor/ext}/vista/tabs/tab-btm-left-bg.gif +0 -0
  595. data/public/{resources/ext/images → images/vendor/ext}/vista/tabs/tab-btm-right-bg.gif +0 -0
  596. data/public/{resources/ext/images → images/vendor/ext}/vista/tabs/tab-sprite.gif +0 -0
  597. data/public/{resources/ext/images → images/vendor/ext}/vista/toolbar/gray-bg.gif +0 -0
  598. data/public/{resources/ext/images → images/vendor/ext}/vista/toolbar/tb-btn-sprite.gif +0 -0
  599. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/README.txt +0 -0
  600. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/box/corners-blue.gif +0 -0
  601. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/box/corners.gif +0 -0
  602. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/box/l-blue.gif +0 -0
  603. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/box/l.gif +0 -0
  604. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/box/r-blue.gif +0 -0
  605. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/box/r.gif +0 -0
  606. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/box/tb-blue.gif +0 -0
  607. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/box/tb.gif +0 -0
  608. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/arrow.gif +0 -0
  609. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/btn.gif +0 -0
  610. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/group-cs.gif +0 -0
  611. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/group-lr.gif +0 -0
  612. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/group-tb.gif +0 -0
  613. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/s-arrow-b-noline.gif +0 -0
  614. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/s-arrow-b.gif +0 -0
  615. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/s-arrow-bo.gif +0 -0
  616. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/s-arrow-noline.gif +0 -0
  617. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/s-arrow-o.gif +0 -0
  618. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/button/s-arrow.gif +0 -0
  619. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/dd/drop-add.gif +0 -0
  620. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/dd/drop-no.gif +0 -0
  621. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/dd/drop-yes.gif +0 -0
  622. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/editor/tb-sprite.gif +0 -0
  623. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/checkbox.gif +0 -0
  624. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/clear-trigger.gif +0 -0
  625. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/clear-trigger.psd +0 -0
  626. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/date-trigger.gif +0 -0
  627. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/date-trigger.psd +0 -0
  628. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/error-tip-corners.gif +0 -0
  629. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/exclamation.gif +0 -0
  630. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/radio.gif +0 -0
  631. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/search-trigger.gif +0 -0
  632. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/search-trigger.psd +0 -0
  633. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/text-bg.gif +0 -0
  634. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/trigger-square.gif +0 -0
  635. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/trigger-square.psd +0 -0
  636. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/trigger-tpl.gif +0 -0
  637. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/trigger.gif +0 -0
  638. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/form/trigger.psd +0 -0
  639. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/gradient-bg.gif +0 -0
  640. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/arrow-left-white.gif +0 -0
  641. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/arrow-right-white.gif +0 -0
  642. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/col-move-bottom.gif +0 -0
  643. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/col-move-top.gif +0 -0
  644. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/columns.gif +0 -0
  645. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/dirty.gif +0 -0
  646. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/done.gif +0 -0
  647. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/drop-no.gif +0 -0
  648. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/drop-yes.gif +0 -0
  649. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/footer-bg.gif +0 -0
  650. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid-blue-hd.gif +0 -0
  651. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid-blue-split.gif +0 -0
  652. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid-hrow.gif +0 -0
  653. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid-loading.gif +0 -0
  654. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid-split.gif +0 -0
  655. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid-vista-hd.gif +0 -0
  656. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid3-hd-btn.gif +0 -0
  657. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid3-hrow-over.gif +0 -0
  658. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid3-hrow.gif +0 -0
  659. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid3-special-col-bg.gif +0 -0
  660. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/grid3-special-col-sel-bg.gif +0 -0
  661. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/group-by.gif +0 -0
  662. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/group-collapse.gif +0 -0
  663. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/group-expand-sprite.gif +0 -0
  664. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/group-expand.gif +0 -0
  665. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/hd-pop.gif +0 -0
  666. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/hmenu-asc.gif +0 -0
  667. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/hmenu-desc.gif +0 -0
  668. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/hmenu-lock.gif +0 -0
  669. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/hmenu-lock.png +0 -0
  670. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/hmenu-unlock.gif +0 -0
  671. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/hmenu-unlock.png +0 -0
  672. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/invalid_line.gif +0 -0
  673. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/loading.gif +0 -0
  674. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/mso-hd.gif +0 -0
  675. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/nowait.gif +0 -0
  676. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/page-first-disabled.gif +0 -0
  677. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/page-first.gif +0 -0
  678. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/page-last-disabled.gif +0 -0
  679. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/page-last.gif +0 -0
  680. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/page-next-disabled.gif +0 -0
  681. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/page-next.gif +0 -0
  682. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/page-prev-disabled.gif +0 -0
  683. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/page-prev.gif +0 -0
  684. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/pick-button.gif +0 -0
  685. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/refresh.gif +0 -0
  686. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/row-check-sprite.gif +0 -0
  687. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/row-expand-sprite.gif +0 -0
  688. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/row-over.gif +0 -0
  689. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/row-sel.gif +0 -0
  690. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/sort-hd.gif +0 -0
  691. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/sort_asc.gif +0 -0
  692. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/sort_desc.gif +0 -0
  693. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/grid/wait.gif +0 -0
  694. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/collapse.gif +0 -0
  695. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/expand.gif +0 -0
  696. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/gradient-bg.gif +0 -0
  697. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/mini-bottom.gif +0 -0
  698. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/mini-left.gif +0 -0
  699. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/mini-right.gif +0 -0
  700. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/mini-top.gif +0 -0
  701. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/ns-collapse.gif +0 -0
  702. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/ns-expand.gif +0 -0
  703. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/panel-close.gif +0 -0
  704. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/panel-title-bg.gif +0 -0
  705. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/panel-title-light-bg.gif +0 -0
  706. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/stick.gif +0 -0
  707. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/stuck.gif +0 -0
  708. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/tab-close-on.gif +0 -0
  709. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/layout/tab-close.gif +0 -0
  710. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/menu/checked.gif +0 -0
  711. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/menu/group-checked.gif +0 -0
  712. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/menu/item-over.gif +0 -0
  713. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/menu/menu-parent.gif +0 -0
  714. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/menu/menu.gif +0 -0
  715. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/menu/unchecked.gif +0 -0
  716. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/panel/corners-sprite.gif +0 -0
  717. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/panel/left-right.gif +0 -0
  718. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/panel/light-hd.gif +0 -0
  719. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/panel/tool-sprite-tpl.gif +0 -0
  720. data/public/images/vendor/ext/yourtheme/panel/tool-sprites.gif +0 -0
  721. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/panel/tools-sprites-trans.gif +0 -0
  722. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/panel/top-bottom.gif +0 -0
  723. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/panel/top-bottom.png +0 -0
  724. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/panel/white-corners-sprite.gif +0 -0
  725. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/panel/white-left-right.gif +0 -0
  726. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/panel/white-top-bottom.gif +0 -0
  727. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/progress/progress-bg.gif +0 -0
  728. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/qtip/bg.gif +0 -0
  729. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/qtip/close.gif +0 -0
  730. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/qtip/tip-anchor-sprite.gif +0 -0
  731. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/qtip/tip-sprite.gif +0 -0
  732. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/s.gif +0 -0
  733. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shadow-c.png +0 -0
  734. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shadow-lr.png +0 -0
  735. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shadow.png +0 -0
  736. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shared/blue-loading.gif +0 -0
  737. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shared/calendar.gif +0 -0
  738. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shared/glass-bg.gif +0 -0
  739. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shared/hd-sprite.gif +0 -0
  740. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shared/large-loading.gif +0 -0
  741. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shared/left-btn.gif +0 -0
  742. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shared/loading-balls.gif +0 -0
  743. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shared/right-btn.gif +0 -0
  744. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/shared/warning.gif +0 -0
  745. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/e-handle-dark.gif +0 -0
  746. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/e-handle.gif +0 -0
  747. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/ne-handle-dark.gif +0 -0
  748. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/ne-handle.gif +0 -0
  749. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/nw-handle-dark.gif +0 -0
  750. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/nw-handle.gif +0 -0
  751. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/s-handle-dark.gif +0 -0
  752. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/s-handle.gif +0 -0
  753. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/se-handle-dark.gif +0 -0
  754. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/se-handle.gif +0 -0
  755. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/square.gif +0 -0
  756. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/sw-handle-dark.gif +0 -0
  757. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/sizer/sw-handle.gif +0 -0
  758. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/slider/slider-bg.png +0 -0
  759. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/slider/slider-thumb.png +0 -0
  760. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/slider/slider-v-bg.png +0 -0
  761. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/slider/slider-v-thumb.png +0 -0
  762. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/scroll-left.gif +0 -0
  763. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/scroll-right.gif +0 -0
  764. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/scroller-bg.gif +0 -0
  765. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tab-btm-inactive-left-bg.gif +0 -0
  766. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tab-btm-inactive-right-bg.gif +0 -0
  767. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tab-btm-left-bg.gif +0 -0
  768. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tab-btm-over-left-bg.gif +0 -0
  769. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tab-btm-over-right-bg.gif +0 -0
  770. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tab-btm-right-bg.gif +0 -0
  771. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tab-close.gif +0 -0
  772. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tab-strip-bg.gif +0 -0
  773. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tab-strip-bg.png +0 -0
  774. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tab-strip-btm-bg.gif +0 -0
  775. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tabs/tabs-sprite.gif +0 -0
  776. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/toolbar/bg.gif +0 -0
  777. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/toolbar/btn-arrow-light.gif +0 -0
  778. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/toolbar/btn-arrow.gif +0 -0
  779. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/toolbar/btn-over-bg.gif +0 -0
  780. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/toolbar/gray-bg.gif +0 -0
  781. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/toolbar/more.gif +0 -0
  782. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/toolbar/tb-bg.gif +0 -0
  783. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/toolbar/tb-btn-sprite.gif +0 -0
  784. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/toolbar/tb-xl-btn-sprite.gif +0 -0
  785. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/toolbar/tb-xl-sep.gif +0 -0
  786. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/arrows.gif +0 -0
  787. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/drop-add.gif +0 -0
  788. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/drop-between.gif +0 -0
  789. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/drop-no.gif +0 -0
  790. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/drop-over.gif +0 -0
  791. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/drop-under.gif +0 -0
  792. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/drop-yes.gif +0 -0
  793. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow-end-minus-nl.gif +0 -0
  794. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow-end-minus.gif +0 -0
  795. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow-end-plus-nl.gif +0 -0
  796. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow-end-plus.gif +0 -0
  797. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow-end.gif +0 -0
  798. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow-line.gif +0 -0
  799. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow-minus-nl.gif +0 -0
  800. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow-minus.gif +0 -0
  801. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow-plus-nl.gif +0 -0
  802. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow-plus.gif +0 -0
  803. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/elbow.gif +0 -0
  804. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/folder-open.gif +0 -0
  805. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/folder.gif +0 -0
  806. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/leaf.gif +0 -0
  807. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/loading.gif +0 -0
  808. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/tree/s.gif +0 -0
  809. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/icon-error.gif +0 -0
  810. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/icon-info.gif +0 -0
  811. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/icon-question.gif +0 -0
  812. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/icon-warning.gif +0 -0
  813. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/left-corners.png +0 -0
  814. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/left-corners.psd +0 -0
  815. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/left-right.png +0 -0
  816. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/left-right.psd +0 -0
  817. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/right-corners.png +0 -0
  818. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/right-corners.psd +0 -0
  819. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/top-bottom.png +0 -0
  820. data/public/{resources/ext/images → images/vendor/ext}/yourtheme/window/top-bottom.psd +0 -0
  821. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/bg-container.png +0 -0
  822. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/bg-editor-bbcode.png +0 -0
  823. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/bg-editor-dotclear.png +0 -0
  824. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/bg-editor-html.png +0 -0
  825. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/bg-editor-json.png +0 -0
  826. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/bg-editor-markdown.png +0 -0
  827. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/bg-editor-textile.png +0 -0
  828. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/bg-editor-wiki.png +0 -0
  829. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/bg-editor-xml.png +0 -0
  830. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/bg-editor.png +0 -0
  831. data/public/{resources/markitup/sets/default/images → images/vendor/markitup}/bold.png +0 -0
  832. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/code.png +0 -0
  833. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/h1.png +0 -0
  834. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/h2.png +0 -0
  835. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/h3.png +0 -0
  836. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/h4.png +0 -0
  837. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/h5.png +0 -0
  838. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/h6.png +0 -0
  839. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/handle.png +0 -0
  840. data/public/{resources/markitup/sets/default/images → images/vendor/markitup}/italic.png +0 -0
  841. data/public/{resources/markitup/sets/default/images → images/vendor/markitup}/link.png +0 -0
  842. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/list-bullet.png +0 -0
  843. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/list-numeric.png +0 -0
  844. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/menu.png +0 -0
  845. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/paragraph.png +0 -0
  846. data/public/{resources/markitup/sets/default/images → images/vendor/markitup}/picture.png +0 -0
  847. data/public/{resources/markitup/sets/default/images → images/vendor/markitup}/preview.png +0 -0
  848. data/public/{resources/markitup/sets/textile/images → images/vendor/markitup}/quotes.png +0 -0
  849. data/public/{resources/markitup/sets/default/images → images/vendor/markitup}/stroke.png +0 -0
  850. data/public/{resources/markitup/skins/markitup/images → images/vendor/markitup}/submenu.png +0 -0
  851. data/public/javascripts/Rwiki.js +95 -40
  852. data/public/javascripts/Rwiki/AboutDialog.js +32 -0
  853. data/public/javascripts/Rwiki/Button.js +29 -0
  854. data/public/javascripts/Rwiki/Data/Page.js +83 -0
  855. data/public/javascripts/Rwiki/Data/PageManager.js +195 -0
  856. data/public/javascripts/Rwiki/Debug.js +21 -0
  857. data/public/javascripts/Rwiki/{EditorPanel/Editor.js → Editor/EditorPanel.js} +43 -23
  858. data/public/javascripts/Rwiki/EditorWindow.js +68 -26
  859. data/public/javascripts/Rwiki/ExceptionWindow.js +32 -0
  860. data/public/javascripts/Rwiki/Flash.js +43 -0
  861. data/public/javascripts/Rwiki/Mask.js +79 -0
  862. data/public/javascripts/Rwiki/NavigationPanel.js +1 -1
  863. data/public/javascripts/Rwiki/PageNameDialog.js +39 -0
  864. data/public/javascripts/Rwiki/Search/FuzzyFinderWindow.js +37 -0
  865. data/public/javascripts/Rwiki/Search/TextSearchWindow.js +35 -0
  866. data/public/javascripts/Rwiki/Search/Window.js +42 -0
  867. data/public/javascripts/Rwiki/TabPanel.js +62 -74
  868. data/public/javascripts/Rwiki/Tabs/PageTab.js +47 -0
  869. data/public/javascripts/Rwiki/Tabs/Toolbar.js +101 -0
  870. data/public/javascripts/Rwiki/TocPanel.js +55 -0
  871. data/public/javascripts/Rwiki/Tree/Loader.js +23 -0
  872. data/public/javascripts/Rwiki/Tree/Menu.js +100 -0
  873. data/public/javascripts/Rwiki/Tree/Node.js +83 -0
  874. data/public/javascripts/Rwiki/TreePanel.js +36 -72
  875. data/public/javascripts/vendor/ext/ext-all.js +6 -6
  876. data/public/javascripts/vendor/ext/{adapter/jquery/ext-jquery-adapter-debug.js → ext-jquery-adapter-debug.js} +0 -0
  877. data/public/javascripts/vendor/ext/{adapter/jquery/ext-jquery-adapter.js → ext-jquery-adapter.js} +5 -5
  878. data/public/javascripts/vendor/jquery/{jquery-1.4.2.js → jquery-1.5.js} +3502 -1566
  879. data/public/stylesheets/{coderay.css → Rwiki/coderay.css} +4 -0
  880. data/public/stylesheets/Rwiki/markitup.css +19 -0
  881. data/public/stylesheets/{page.css → Rwiki/page.css} +2 -7
  882. data/public/stylesheets/style.css +72 -16
  883. data/public/{resources/ext/css → stylesheets/vendor/ext}/ext-all.css +258 -293
  884. data/public/stylesheets/vendor/markitup/sets/textile/style.css +60 -0
  885. data/public/{resources → stylesheets/vendor}/markitup/skins/markitup/style.css +12 -12
  886. data/rwiki.gemspec +926 -1056
  887. data/sandbox/grit.rb +116 -0
  888. data/script/build_cucumber +24 -0
  889. data/script/build_jasmine +18 -0
  890. data/script/build_rspec +13 -0
  891. data/script/shotgun +2 -0
  892. data/spec/coffeescripts/Rwiki/Data/PageSpec.coffee +31 -0
  893. data/spec/coffeescripts/Rwiki/Mask.coffee +6 -0
  894. data/spec/coffeescripts/Rwiki/TabPanelSpec.coffee +72 -0
  895. data/spec/coffeescripts/Rwiki/Tabs/PageTabSpec.coffee +7 -0
  896. data/spec/coffeescripts/Rwiki/Tree/MenuSpec.coffee +95 -0
  897. data/spec/coffeescripts/Rwiki/TreePanelSpec.coffee +115 -0
  898. data/spec/fixtures/Home.txt +1 -0
  899. data/spec/fixtures/Home/About.txt +1 -0
  900. data/spec/fixtures/Home/Development.txt +5 -0
  901. data/spec/fixtures/Home/Development/Databases.txt +4 -0
  902. data/spec/fixtures/Home/Development/Databases/MySQL.txt +5 -0
  903. data/{test/fixtures/pages/empty_folder/dummy → spec/fixtures/Home/Development/Databases/Oracle.txt} +0 -0
  904. data/{test/fixtures/pages/folder/subfolder/ruby.txt → spec/fixtures/Home/Development/Databases/Postgres.txt} +0 -0
  905. data/spec/fixtures/Home/Development/Programming Languages.txt +3 -0
  906. data/spec/fixtures/Home/Development/Programming Languages/Java.txt +1 -0
  907. data/test/fixtures/pages/folder/test 1.txt b/data/spec/fixtures/Home/Development/Programming → Languages/JavaScript.txt +0 -0
  908. data/test/fixtures/pages/subfolder/dummy b/data/spec/fixtures/Home/Development/Programming → Languages/Python.txt +0 -0
  909. data/spec/fixtures/Home/Development/Programming Languages/Ruby.txt +148 -0
  910. data/spec/fixtures/Home/Development/test 1.txt b/data/spec/fixtures/Home/Development/test → 1.txt +0 -0
  911. data/test/fixtures/pages/folder/test 2.txt b/data/spec/fixtures/Home/Development/test → 2.txt +0 -0
  912. data/{test/fixtures/pages/folder → spec/fixtures/Home/Development}/test.txt +0 -0
  913. data/spec/fixtures/Home/Personal stuff.txt b/data/spec/fixtures/Home/Personal → stuff.txt +0 -0
  914. data/spec/fixtures/Home/Personal stuff/Addresses.txt +1 -0
  915. data/spec/fixtures/Home/Personal stuff/Notes.txt b/data/spec/fixtures/Home/Personal → stuff/Notes.txt +0 -0
  916. data/spec/javascripts/support/jasmine.yml +10 -8
  917. data/spec/javascripts/support/jasmine_config.rb +55 -0
  918. data/spec/javascripts/support/jasmine_runner.rb +15 -4
  919. data/spec/rwiki/app_spec.rb +71 -0
  920. data/spec/rwiki/page_spec.rb +254 -0
  921. data/spec/rwiki/utils/file_helper_spec.rb +252 -0
  922. data/spec/rwiki/utils/textile_helper_spec.rb +73 -0
  923. data/spec/rwiki_spec.rb +22 -0
  924. data/spec/spec_helper.rb +30 -0
  925. data/spec/support/rwiki_macros.rb +26 -0
  926. data/spec/support/tmpdir_helper.rb +23 -0
  927. data/specs.watchr +57 -0
  928. data/views/index.erb +62 -3
  929. data/views/print.erb +1 -1
  930. metadata +918 -1053
  931. data/VERSION +0 -1
  932. data/features/editor.feature +0 -49
  933. data/features/rename_page.feature +0 -88
  934. data/features/step_definitions/common_transforms.rb +0 -5
  935. data/features/step_definitions/wait_steps.rb +0 -21
  936. data/lib/rwiki/models.rb +0 -7
  937. data/lib/rwiki/models/folder.rb +0 -62
  938. data/lib/rwiki/models/node.rb +0 -96
  939. data/lib/rwiki/models/page.rb +0 -110
  940. data/public/SpecRunner.html +0 -64
  941. data/public/jasmine/jasmine-html.js +0 -182
  942. data/public/jasmine/jasmine.css +0 -166
  943. data/public/jasmine/jasmine.js +0 -2421
  944. data/public/jasmine/json2.js +0 -478
  945. data/public/javascripts/Rwiki/EditorPanel.js +0 -45
  946. data/public/javascripts/Rwiki/FuzzyFinderDialog.js +0 -61
  947. data/public/javascripts/Rwiki/Node.js +0 -37
  948. data/public/javascripts/Rwiki/NodeManager.js +0 -177
  949. data/public/javascripts/Rwiki/TabPanel/PageTab.js +0 -49
  950. data/public/javascripts/Rwiki/TreePanel/Filter.js +0 -66
  951. data/public/javascripts/Rwiki/TreePanel/Loader.js +0 -24
  952. data/public/javascripts/Rwiki/TreePanel/Menu.js +0 -108
  953. data/public/javascripts/Rwiki/TreePanel/Node.js +0 -60
  954. data/public/javascripts/Rwiki/TreePanel/Toolbar.js +0 -44
  955. data/public/javascripts/vendor/ext/adapter/ext/ext-base-debug-w-comments.js +0 -3637
  956. data/public/javascripts/vendor/ext/adapter/ext/ext-base-debug.js +0 -2886
  957. data/public/javascripts/vendor/ext/adapter/ext/ext-base.js +0 -7
  958. data/public/javascripts/vendor/ext/adapter/prototype/ext-prototype-adapter-debug.js +0 -1826
  959. data/public/javascripts/vendor/ext/adapter/prototype/ext-prototype-adapter.js +0 -7
  960. data/public/javascripts/vendor/ext/adapter/yui/ext-yui-adapter-debug.js +0 -1592
  961. data/public/javascripts/vendor/ext/adapter/yui/ext-yui-adapter.js +0 -7
  962. data/public/javascripts/vendor/ext/ext-all-debug.js +0 -51256
  963. data/public/javascripts/vendor/jquery/jquery-1.4.2.min.js +0 -154
  964. data/public/resources/ext/charts.swf +0 -0
  965. data/public/resources/ext/css/README.txt +0 -6
  966. data/public/resources/ext/css/debug.css +0 -43
  967. data/public/resources/ext/css/ext-all-notheme.css +0 -5302
  968. data/public/resources/ext/css/reset-min.css +0 -7
  969. data/public/resources/ext/css/structure/borders.css +0 -54
  970. data/public/resources/ext/css/structure/box.css +0 -80
  971. data/public/resources/ext/css/structure/button.css +0 -445
  972. data/public/resources/ext/css/structure/combo.css +0 -45
  973. data/public/resources/ext/css/structure/core.css +0 -341
  974. data/public/resources/ext/css/structure/date-picker.css +0 -271
  975. data/public/resources/ext/css/structure/dd.css +0 -61
  976. data/public/resources/ext/css/structure/debug.css +0 -26
  977. data/public/resources/ext/css/structure/dialog.css +0 -59
  978. data/public/resources/ext/css/structure/editor.css +0 -92
  979. data/public/resources/ext/css/structure/form.css +0 -573
  980. data/public/resources/ext/css/structure/grid.css +0 -588
  981. data/public/resources/ext/css/structure/layout.css +0 -296
  982. data/public/resources/ext/css/structure/list-view.css +0 -86
  983. data/public/resources/ext/css/structure/menu.css +0 -245
  984. data/public/resources/ext/css/structure/panel-reset.css +0 -130
  985. data/public/resources/ext/css/structure/panel.css +0 -493
  986. data/public/resources/ext/css/structure/pivotgrid.css +0 -65
  987. data/public/resources/ext/css/structure/progress.css +0 -46
  988. data/public/resources/ext/css/structure/qtips.css +0 -153
  989. data/public/resources/ext/css/structure/reset.css +0 -13
  990. data/public/resources/ext/css/structure/resizable.css +0 -149
  991. data/public/resources/ext/css/structure/slider.css +0 -103
  992. data/public/resources/ext/css/structure/tabs.css +0 -392
  993. data/public/resources/ext/css/structure/toolbar.css +0 -246
  994. data/public/resources/ext/css/structure/tree.css +0 -218
  995. data/public/resources/ext/css/structure/window.css +0 -222
  996. data/public/resources/ext/css/theme-access/borders.css +0 -25
  997. data/public/resources/ext/css/theme-access/box.css +0 -74
  998. data/public/resources/ext/css/theme-access/button.css +0 -136
  999. data/public/resources/ext/css/theme-access/combo.css +0 -43
  1000. data/public/resources/ext/css/theme-access/core.css +0 -81
  1001. data/public/resources/ext/css/theme-access/date-picker.css +0 -145
  1002. data/public/resources/ext/css/theme-access/dd.css +0 -29
  1003. data/public/resources/ext/css/theme-access/debug.css +0 -24
  1004. data/public/resources/ext/css/theme-access/dialog.css +0 -34
  1005. data/public/resources/ext/css/theme-access/editor.css +0 -16
  1006. data/public/resources/ext/css/theme-access/form.css +0 -176
  1007. data/public/resources/ext/css/theme-access/grid.css +0 -288
  1008. data/public/resources/ext/css/theme-access/layout.css +0 -56
  1009. data/public/resources/ext/css/theme-access/list-view.css +0 -43
  1010. data/public/resources/ext/css/theme-access/menu.css +0 -79
  1011. data/public/resources/ext/css/theme-access/panel.css +0 -94
  1012. data/public/resources/ext/css/theme-access/progress.css +0 -35
  1013. data/public/resources/ext/css/theme-access/qtips.css +0 -44
  1014. data/public/resources/ext/css/theme-access/resizable.css +0 -44
  1015. data/public/resources/ext/css/theme-access/slider.css +0 -21
  1016. data/public/resources/ext/css/theme-access/tabs.css +0 -119
  1017. data/public/resources/ext/css/theme-access/toolbar.css +0 -120
  1018. data/public/resources/ext/css/theme-access/tree.css +0 -165
  1019. data/public/resources/ext/css/theme-access/window.css +0 -87
  1020. data/public/resources/ext/css/theme-gray/borders.css +0 -29
  1021. data/public/resources/ext/css/theme-gray/box.css +0 -74
  1022. data/public/resources/ext/css/theme-gray/button.css +0 -94
  1023. data/public/resources/ext/css/theme-gray/combo.css +0 -43
  1024. data/public/resources/ext/css/theme-gray/core.css +0 -83
  1025. data/public/resources/ext/css/theme-gray/date-picker.css +0 -143
  1026. data/public/resources/ext/css/theme-gray/dd.css +0 -29
  1027. data/public/resources/ext/css/theme-gray/debug.css +0 -24
  1028. data/public/resources/ext/css/theme-gray/dialog.css +0 -34
  1029. data/public/resources/ext/css/theme-gray/editor.css +0 -13
  1030. data/public/resources/ext/css/theme-gray/form.css +0 -117
  1031. data/public/resources/ext/css/theme-gray/grid.css +0 -276
  1032. data/public/resources/ext/css/theme-gray/layout.css +0 -53
  1033. data/public/resources/ext/css/theme-gray/list-view.css +0 -37
  1034. data/public/resources/ext/css/theme-gray/menu.css +0 -82
  1035. data/public/resources/ext/css/theme-gray/panel.css +0 -87
  1036. data/public/resources/ext/css/theme-gray/pivotgrid.css +0 -28
  1037. data/public/resources/ext/css/theme-gray/progress.css +0 -32
  1038. data/public/resources/ext/css/theme-gray/qtips.css +0 -44
  1039. data/public/resources/ext/css/theme-gray/resizable.css +0 -43
  1040. data/public/resources/ext/css/theme-gray/slider.css +0 -21
  1041. data/public/resources/ext/css/theme-gray/tabs.css +0 -127
  1042. data/public/resources/ext/css/theme-gray/toolbar.css +0 -95
  1043. data/public/resources/ext/css/theme-gray/tree.css +0 -157
  1044. data/public/resources/ext/css/theme-gray/window.css +0 -86
  1045. data/public/resources/ext/css/visual/borders.css +0 -25
  1046. data/public/resources/ext/css/visual/box.css +0 -74
  1047. data/public/resources/ext/css/visual/button.css +0 -94
  1048. data/public/resources/ext/css/visual/combo.css +0 -43
  1049. data/public/resources/ext/css/visual/core.css +0 -82
  1050. data/public/resources/ext/css/visual/date-picker.css +0 -143
  1051. data/public/resources/ext/css/visual/dd.css +0 -29
  1052. data/public/resources/ext/css/visual/debug.css +0 -24
  1053. data/public/resources/ext/css/visual/dialog.css +0 -34
  1054. data/public/resources/ext/css/visual/editor.css +0 -13
  1055. data/public/resources/ext/css/visual/form.css +0 -123
  1056. data/public/resources/ext/css/visual/grid.css +0 -277
  1057. data/public/resources/ext/css/visual/layout.css +0 -53
  1058. data/public/resources/ext/css/visual/list-view.css +0 -37
  1059. data/public/resources/ext/css/visual/menu.css +0 -87
  1060. data/public/resources/ext/css/visual/panel.css +0 -87
  1061. data/public/resources/ext/css/visual/pivotgrid.css +0 -28
  1062. data/public/resources/ext/css/visual/progress.css +0 -32
  1063. data/public/resources/ext/css/visual/qtips.css +0 -44
  1064. data/public/resources/ext/css/visual/resizable.css +0 -43
  1065. data/public/resources/ext/css/visual/slider.css +0 -21
  1066. data/public/resources/ext/css/visual/tabs.css +0 -127
  1067. data/public/resources/ext/css/visual/toolbar.css +0 -95
  1068. data/public/resources/ext/css/visual/tree.css +0 -152
  1069. data/public/resources/ext/css/visual/window.css +0 -86
  1070. data/public/resources/ext/css/xtheme-access.css +0 -1820
  1071. data/public/resources/ext/css/xtheme-blue.css +0 -1674
  1072. data/public/resources/ext/css/xtheme-gray.css +0 -1682
  1073. data/public/resources/ext/css/yourtheme.css +0 -1652
  1074. data/public/resources/ext/expressinstall.swf +0 -0
  1075. data/public/resources/ext/images/default/panel/tool-sprites.gif +0 -0
  1076. data/public/resources/ext/images/gray/grid/sort-hd.gif +0 -0
  1077. data/public/resources/ext/images/gray/panel/tool-sprites.gif +0 -0
  1078. data/public/resources/ext/images/gray/window/left-corners.pspimage +0 -0
  1079. data/public/resources/ext/resources.jsb +0 -507
  1080. data/public/resources/markitup/images/body.png +0 -0
  1081. data/public/resources/markitup/images/jaysalvat.png +0 -0
  1082. data/public/resources/markitup/images/markitup.png +0 -0
  1083. data/public/resources/markitup/images/style.css +0 -27
  1084. data/public/resources/markitup/sets/default/images/clean.png +0 -0
  1085. data/public/resources/markitup/sets/default/images/image.png +0 -0
  1086. data/public/resources/markitup/sets/default/set.js +0 -27
  1087. data/public/resources/markitup/sets/default/style.css +0 -27
  1088. data/public/resources/markitup/sets/textile/images/bold.png +0 -0
  1089. data/public/resources/markitup/sets/textile/images/italic.png +0 -0
  1090. data/public/resources/markitup/sets/textile/images/link.png +0 -0
  1091. data/public/resources/markitup/sets/textile/images/picture.png +0 -0
  1092. data/public/resources/markitup/sets/textile/images/preview.png +0 -0
  1093. data/public/resources/markitup/sets/textile/images/stroke.png +0 -0
  1094. data/public/resources/markitup/sets/textile/readme.txt +0 -11
  1095. data/public/resources/markitup/sets/textile/set.js +0 -40
  1096. data/public/resources/markitup/sets/textile/style.css +0 -60
  1097. data/public/resources/markitup/skins/simple/images/handle.png +0 -0
  1098. data/public/resources/markitup/skins/simple/images/menu.png +0 -0
  1099. data/public/resources/markitup/skins/simple/images/submenu.png +0 -0
  1100. data/public/resources/markitup/skins/simple/style.css +0 -118
  1101. data/public/resources/markitup/templates/preview.css +0 -5
  1102. data/public/resources/markitup/templates/preview.html +0 -11
  1103. data/public/stylesheets/markitup.css +0 -19
  1104. data/run_tests.sh +0 -1
  1105. data/script/server +0 -17
  1106. data/spec/javascripts/Rwiki/NodeManagerSpec.js +0 -8
  1107. data/spec/javascripts/Rwiki/TabPanel/PageTabSpec.js +0 -22
  1108. data/spec/javascripts/Rwiki/TabPanelSpec.js +0 -94
  1109. data/spec/javascripts/Rwiki/TreePanel/MenuSpec.js +0 -169
  1110. data/spec/javascripts/Rwiki/TreePanelSpec.js +0 -161
  1111. data/spec/javascripts/helpers/SpecHelper.js +0 -5
  1112. data/test/fixtures/pages/home.txt +0 -5
  1113. data/test/fixtures/pages/test.txt +0 -1
  1114. data/test/helper.rb +0 -22
  1115. data/test/rwiki/models/test_folder.rb +0 -206
  1116. data/test/rwiki/models/test_node.rb +0 -147
  1117. data/test/rwiki/models/test_page.rb +0 -110
  1118. data/test/rwiki/test_app.rb +0 -45
  1119. data/test/tmpdir_helper.rb +0 -21
  1120. data/tmp/fssm_test.rb +0 -13
  1121. data/views/layout.erb +0 -66
@@ -1,64 +0,0 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2
- "http://www.w3.org/TR/html4/loose.dtd">
3
- <html>
4
- <head>
5
- <title>Jasmine Test Runner</title>
6
- <link rel="stylesheet" type="text/css" href="jasmine/jasmine.css">
7
- <script type="text/javascript" src="jasmine/jasmine.js"></script>
8
- <script type="text/javascript" src="jasmine/jasmine-html.js"></script>
9
-
10
- <!-- include source files here... -->
11
-
12
- <!-- ** CSS ** -->
13
- <link rel="stylesheet" type="text/css" href="resources/ext/css/ext-all.css" />
14
- <link rel="stylesheet" type="text/css" href="resources/markitup/skins/markitup/style.css" />
15
- <link rel="stylesheet" type="text/css" href="resources/markitup/sets/textile/style.css" />
16
-
17
- <link rel="stylesheet" type="text/css" href="stylesheets/style.css" />
18
- <link rel="stylesheet" type="text/css" href="stylesheets/page.css" />
19
- <link rel="stylesheet" type="text/css" href="stylesheets/coderay.css" />
20
-
21
- <!-- ** Javascript ** -->
22
- <script type="text/javascript" src="javascripts/vendor/jquery/jquery-1.4.2.js"></script>
23
- <script type="text/javascript" src="javascripts/vendor/ext/adapter/jquery/ext-jquery-adapter-debug.js"></script>
24
- <script type="text/javascript" src="javascripts/vendor/ext/ext-all-debug.js"></script>
25
- <script type="text/javascript" src="javascripts/vendor/ext/ux/TabCloseMenu.js"></script>
26
-
27
- <!-- ** MarkItUp editor ** -->
28
- <script type="text/javascript" src="javascripts/vendor/markitup/jquery.markitup.js"></script>
29
- <script type="text/javascript" src="resources/markitup/sets/textile/set.js"></script>
30
-
31
- <!-- ** Rwiki ** -->
32
- <script type="text/javascript" src="javascripts/Rwiki/EditorPanel.js"></script>
33
- <script type="text/javascript" src="javascripts/Rwiki/EditorPanel/Editor.js"></script>
34
- <script type="text/javascript" src="javascripts/Rwiki/Node.js"></script>
35
- <script type="text/javascript" src="javascripts/Rwiki/TabPanel.js"></script>
36
- <script type="text/javascript" src="javascripts/Rwiki/TabPanel/PageTab.js"></script>
37
- <script type="text/javascript" src="javascripts/Rwiki/Toolbat.js"></script>
38
- <script type="text/javascript" src="javascripts/Rwiki/TreePanel.js"></script>
39
- <script type="text/javascript" src="javascripts/Rwiki/TreePanel/Loader.js"></script>
40
- <script type="text/javascript" src="javascripts/Rwiki/TreePanel/Menu.js"></script>
41
- <script type="text/javascript" src="javascripts/Rwiki/TreePanel/Toolbar.js"></script>
42
- <script type="text/javascript" src="javascripts/Rwiki/Viewport.js"></script>
43
-
44
- <script type="text/javascript" src="javascripts/Rwiki.js"></script>
45
-
46
- <!-- include spec files here... -->
47
- <script type="text/javascript" src="../spec/javascripts/Rwiki/NodeManagerSpec.js"></script>
48
- <script type="text/javascript" src="../spec/javascripts/Rwiki/TabPanelSpec.js"></script>
49
- <script type="text/javascript" src="../spec/javascripts/Rwiki/TabPanel/PageTabSpec.js"></script>
50
- <script type="text/javascript" src="../spec/javascripts/Rwiki/TreePanelSpec.js"></script>
51
- <script type="text/javascript" src="../spec/javascripts/Rwiki/TreePanel/MenuSpec.js"></script>
52
-
53
- </head>
54
- <body>
55
- <script type="text/javascript">
56
- jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
57
- jasmine.getEnv().execute();
58
- </script>
59
-
60
- <div id="tree-div" style="display: none;"></div>
61
- <div id="tab-div" style="display: none;"></div>
62
-
63
- </body>
64
- </html>
@@ -1,182 +0,0 @@
1
- jasmine.TrivialReporter = function(doc) {
2
- this.document = doc || document;
3
- this.suiteDivs = {};
4
- this.logRunningSpecs = false;
5
- };
6
-
7
- jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) {
8
- var el = document.createElement(type);
9
-
10
- for (var i = 2; i < arguments.length; i++) {
11
- var child = arguments[i];
12
-
13
- if (typeof child === 'string') {
14
- el.appendChild(document.createTextNode(child));
15
- } else {
16
- if (child) { el.appendChild(child); }
17
- }
18
- }
19
-
20
- for (var attr in attrs) {
21
- if (attr == "className") {
22
- el[attr] = attrs[attr];
23
- } else {
24
- el.setAttribute(attr, attrs[attr]);
25
- }
26
- }
27
-
28
- return el;
29
- };
30
-
31
- jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
32
- var showPassed, showSkipped;
33
-
34
- this.outerDiv = this.createDom('div', { className: 'jasmine_reporter' },
35
- this.createDom('div', { className: 'banner' },
36
- this.createDom('div', { className: 'logo' },
37
- this.createDom('a', { href: 'http://pivotal.github.com/jasmine/', target: "_blank" }, "Jasmine"),
38
- this.createDom('span', { className: 'version' }, runner.env.versionString())),
39
- this.createDom('div', { className: 'options' },
40
- "Show ",
41
- showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' }),
42
- this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
43
- showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' }),
44
- this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped")
45
- )
46
- ),
47
-
48
- this.runnerDiv = this.createDom('div', { className: 'runner running' },
49
- this.createDom('a', { className: 'run_spec', href: '?' }, "run all"),
50
- this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
51
- this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
52
- );
53
-
54
- this.document.body.appendChild(this.outerDiv);
55
-
56
- var suites = runner.suites();
57
- for (var i = 0; i < suites.length; i++) {
58
- var suite = suites[i];
59
- var suiteDiv = this.createDom('div', { className: 'suite' },
60
- this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
61
- this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
62
- this.suiteDivs[suite.id] = suiteDiv;
63
- var parentDiv = this.outerDiv;
64
- if (suite.parentSuite) {
65
- parentDiv = this.suiteDivs[suite.parentSuite.id];
66
- }
67
- parentDiv.appendChild(suiteDiv);
68
- }
69
-
70
- this.startedAt = new Date();
71
-
72
- var self = this;
73
- showPassed.onchange = function(evt) {
74
- if (evt.target.checked) {
75
- self.outerDiv.className += ' show-passed';
76
- } else {
77
- self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
78
- }
79
- };
80
-
81
- showSkipped.onchange = function(evt) {
82
- if (evt.target.checked) {
83
- self.outerDiv.className += ' show-skipped';
84
- } else {
85
- self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
86
- }
87
- };
88
- };
89
-
90
- jasmine.TrivialReporter.prototype.reportRunnerResults = function(runner) {
91
- var results = runner.results();
92
- var className = (results.failedCount > 0) ? "runner failed" : "runner passed";
93
- this.runnerDiv.setAttribute("class", className);
94
- //do it twice for IE
95
- this.runnerDiv.setAttribute("className", className);
96
- var specs = runner.specs();
97
- var specCount = 0;
98
- for (var i = 0; i < specs.length; i++) {
99
- if (this.specFilter(specs[i])) {
100
- specCount++;
101
- }
102
- }
103
- var message = "" + specCount + " spec" + (specCount == 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount == 1) ? "" : "s");
104
- message += " in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s";
105
- this.runnerMessageSpan.replaceChild(this.createDom('a', { className: 'description', href: '?'}, message), this.runnerMessageSpan.firstChild);
106
-
107
- this.finishedAtSpan.appendChild(document.createTextNode("Finished at " + new Date().toString()));
108
- };
109
-
110
- jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) {
111
- var results = suite.results();
112
- var status = results.passed() ? 'passed' : 'failed';
113
- if (results.totalCount == 0) { // todo: change this to check results.skipped
114
- status = 'skipped';
115
- }
116
- this.suiteDivs[suite.id].className += " " + status;
117
- };
118
-
119
- jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) {
120
- if (this.logRunningSpecs) {
121
- this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
122
- }
123
- };
124
-
125
- jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
126
- var results = spec.results();
127
- var status = results.passed() ? 'passed' : 'failed';
128
- if (results.skipped) {
129
- status = 'skipped';
130
- }
131
- var specDiv = this.createDom('div', { className: 'spec ' + status },
132
- this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(spec.getFullName()) }, "run"),
133
- this.createDom('a', {
134
- className: 'description',
135
- href: '?spec=' + encodeURIComponent(spec.getFullName()),
136
- title: spec.getFullName()
137
- }, spec.description));
138
-
139
-
140
- var resultItems = results.getItems();
141
- var messagesDiv = this.createDom('div', { className: 'messages' });
142
- for (var i = 0; i < resultItems.length; i++) {
143
- var result = resultItems[i];
144
-
145
- if (result.type == 'log') {
146
- messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
147
- } else if (result.type == 'expect' && result.passed && !result.passed()) {
148
- messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
149
-
150
- if (result.trace.stack) {
151
- messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
152
- }
153
- }
154
- }
155
-
156
- if (messagesDiv.childNodes.length > 0) {
157
- specDiv.appendChild(messagesDiv);
158
- }
159
-
160
- this.suiteDivs[spec.suite.id].appendChild(specDiv);
161
- };
162
-
163
- jasmine.TrivialReporter.prototype.log = function() {
164
- var console = jasmine.getGlobal().console;
165
- if (console && console.log) console.log.apply(console, arguments);
166
- };
167
-
168
- jasmine.TrivialReporter.prototype.getLocation = function() {
169
- return this.document.location;
170
- };
171
-
172
- jasmine.TrivialReporter.prototype.specFilter = function(spec) {
173
- var paramMap = {};
174
- var params = this.getLocation().search.substring(1).split('&');
175
- for (var i = 0; i < params.length; i++) {
176
- var p = params[i].split('=');
177
- paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
178
- }
179
-
180
- if (!paramMap["spec"]) return true;
181
- return spec.getFullName().indexOf(paramMap["spec"]) == 0;
182
- };
@@ -1,166 +0,0 @@
1
- body {
2
- font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
3
- }
4
-
5
-
6
- .jasmine_reporter a:visited, .jasmine_reporter a {
7
- color: #303;
8
- }
9
-
10
- .jasmine_reporter a:hover, .jasmine_reporter a:active {
11
- color: blue;
12
- }
13
-
14
- .run_spec {
15
- float:right;
16
- padding-right: 5px;
17
- font-size: .8em;
18
- text-decoration: none;
19
- }
20
-
21
- .jasmine_reporter {
22
- margin: 0 5px;
23
- }
24
-
25
- .banner {
26
- color: #303;
27
- background-color: #fef;
28
- padding: 5px;
29
- }
30
-
31
- .logo {
32
- float: left;
33
- font-size: 1.1em;
34
- padding-left: 5px;
35
- }
36
-
37
- .logo .version {
38
- font-size: .6em;
39
- padding-left: 1em;
40
- }
41
-
42
- .runner.running {
43
- background-color: yellow;
44
- }
45
-
46
-
47
- .options {
48
- text-align: right;
49
- font-size: .8em;
50
- }
51
-
52
-
53
-
54
-
55
- .suite {
56
- border: 1px outset gray;
57
- margin: 5px 0;
58
- padding-left: 1em;
59
- }
60
-
61
- .suite .suite {
62
- margin: 5px;
63
- }
64
-
65
- .suite.passed {
66
- background-color: #dfd;
67
- }
68
-
69
- .suite.failed {
70
- background-color: #fdd;
71
- }
72
-
73
- .spec {
74
- margin: 5px;
75
- padding-left: 1em;
76
- clear: both;
77
- }
78
-
79
- .spec.failed, .spec.passed, .spec.skipped {
80
- padding-bottom: 5px;
81
- border: 1px solid gray;
82
- }
83
-
84
- .spec.failed {
85
- background-color: #fbb;
86
- border-color: red;
87
- }
88
-
89
- .spec.passed {
90
- background-color: #bfb;
91
- border-color: green;
92
- }
93
-
94
- .spec.skipped {
95
- background-color: #bbb;
96
- }
97
-
98
- .messages {
99
- border-left: 1px dashed gray;
100
- padding-left: 1em;
101
- padding-right: 1em;
102
- }
103
-
104
- .passed {
105
- background-color: #cfc;
106
- display: none;
107
- }
108
-
109
- .failed {
110
- background-color: #fbb;
111
- }
112
-
113
- .skipped {
114
- color: #777;
115
- background-color: #eee;
116
- display: none;
117
- }
118
-
119
-
120
- /*.resultMessage {*/
121
- /*white-space: pre;*/
122
- /*}*/
123
-
124
- .resultMessage span.result {
125
- display: block;
126
- line-height: 2em;
127
- color: black;
128
- }
129
-
130
- .resultMessage .mismatch {
131
- color: black;
132
- }
133
-
134
- .stackTrace {
135
- white-space: pre;
136
- font-size: .8em;
137
- margin-left: 10px;
138
- max-height: 5em;
139
- overflow: auto;
140
- border: 1px inset red;
141
- padding: 1em;
142
- background: #eef;
143
- }
144
-
145
- .finished-at {
146
- padding-left: 1em;
147
- font-size: .6em;
148
- }
149
-
150
- .show-passed .passed,
151
- .show-skipped .skipped {
152
- display: block;
153
- }
154
-
155
-
156
- #jasmine_content {
157
- position:fixed;
158
- right: 100%;
159
- }
160
-
161
- .runner {
162
- border: 1px solid gray;
163
- display: block;
164
- margin: 5px 0;
165
- padding: 2px 0 2px 10px;
166
- }
@@ -1,2421 +0,0 @@
1
- /**
2
- * Top level namespace for Jasmine, a lightweight JavaScript BDD/spec/testing framework.
3
- *
4
- * @namespace
5
- */
6
- var jasmine = {};
7
-
8
- /**
9
- * @private
10
- */
11
- jasmine.unimplementedMethod_ = function() {
12
- throw new Error("unimplemented method");
13
- };
14
-
15
- /**
16
- * Use <code>jasmine.undefined</code> instead of <code>undefined</code>, since <code>undefined</code> is just
17
- * a plain old variable and may be redefined by somebody else.
18
- *
19
- * @private
20
- */
21
- jasmine.undefined = jasmine.___undefined___;
22
-
23
- /**
24
- * Default interval in milliseconds for event loop yields (e.g. to allow network activity or to refresh the screen with the HTML-based runner). Small values here may result in slow test running. Zero means no updates until all tests have completed.
25
- *
26
- */
27
- jasmine.DEFAULT_UPDATE_INTERVAL = 250;
28
-
29
- /**
30
- * Default timeout interval in milliseconds for waitsFor() blocks.
31
- */
32
- jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000;
33
-
34
- jasmine.getGlobal = function() {
35
- function getGlobal() {
36
- return this;
37
- }
38
-
39
- return getGlobal();
40
- };
41
-
42
- /**
43
- * Allows for bound functions to be compared. Internal use only.
44
- *
45
- * @ignore
46
- * @private
47
- * @param base {Object} bound 'this' for the function
48
- * @param name {Function} function to find
49
- */
50
- jasmine.bindOriginal_ = function(base, name) {
51
- var original = base[name];
52
- if (original.apply) {
53
- return function() {
54
- return original.apply(base, arguments);
55
- };
56
- } else {
57
- // IE support
58
- return jasmine.getGlobal()[name];
59
- }
60
- };
61
-
62
- jasmine.setTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'setTimeout');
63
- jasmine.clearTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearTimeout');
64
- jasmine.setInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'setInterval');
65
- jasmine.clearInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearInterval');
66
-
67
- jasmine.MessageResult = function(values) {
68
- this.type = 'log';
69
- this.values = values;
70
- this.trace = new Error(); // todo: test better
71
- };
72
-
73
- jasmine.MessageResult.prototype.toString = function() {
74
- var text = "";
75
- for(var i = 0; i < this.values.length; i++) {
76
- if (i > 0) text += " ";
77
- if (jasmine.isString_(this.values[i])) {
78
- text += this.values[i];
79
- } else {
80
- text += jasmine.pp(this.values[i]);
81
- }
82
- }
83
- return text;
84
- };
85
-
86
- jasmine.ExpectationResult = function(params) {
87
- this.type = 'expect';
88
- this.matcherName = params.matcherName;
89
- this.passed_ = params.passed;
90
- this.expected = params.expected;
91
- this.actual = params.actual;
92
-
93
- this.message = this.passed_ ? 'Passed.' : params.message;
94
- this.trace = this.passed_ ? '' : new Error(this.message);
95
- };
96
-
97
- jasmine.ExpectationResult.prototype.toString = function () {
98
- return this.message;
99
- };
100
-
101
- jasmine.ExpectationResult.prototype.passed = function () {
102
- return this.passed_;
103
- };
104
-
105
- /**
106
- * Getter for the Jasmine environment. Ensures one gets created
107
- */
108
- jasmine.getEnv = function() {
109
- return jasmine.currentEnv_ = jasmine.currentEnv_ || new jasmine.Env();
110
- };
111
-
112
- /**
113
- * @ignore
114
- * @private
115
- * @param value
116
- * @returns {Boolean}
117
- */
118
- jasmine.isArray_ = function(value) {
119
- return jasmine.isA_("Array", value);
120
- };
121
-
122
- /**
123
- * @ignore
124
- * @private
125
- * @param value
126
- * @returns {Boolean}
127
- */
128
- jasmine.isString_ = function(value) {
129
- return jasmine.isA_("String", value);
130
- };
131
-
132
- /**
133
- * @ignore
134
- * @private
135
- * @param value
136
- * @returns {Boolean}
137
- */
138
- jasmine.isNumber_ = function(value) {
139
- return jasmine.isA_("Number", value);
140
- };
141
-
142
- /**
143
- * @ignore
144
- * @private
145
- * @param {String} typeName
146
- * @param value
147
- * @returns {Boolean}
148
- */
149
- jasmine.isA_ = function(typeName, value) {
150
- return Object.prototype.toString.apply(value) === '[object ' + typeName + ']';
151
- };
152
-
153
- /**
154
- * Pretty printer for expecations. Takes any object and turns it into a human-readable string.
155
- *
156
- * @param value {Object} an object to be outputted
157
- * @returns {String}
158
- */
159
- jasmine.pp = function(value) {
160
- var stringPrettyPrinter = new jasmine.StringPrettyPrinter();
161
- stringPrettyPrinter.format(value);
162
- return stringPrettyPrinter.string;
163
- };
164
-
165
- /**
166
- * Returns true if the object is a DOM Node.
167
- *
168
- * @param {Object} obj object to check
169
- * @returns {Boolean}
170
- */
171
- jasmine.isDomNode = function(obj) {
172
- return obj['nodeType'] > 0;
173
- };
174
-
175
- /**
176
- * Returns a matchable 'generic' object of the class type. For use in expecations of type when values don't matter.
177
- *
178
- * @example
179
- * // don't care about which function is passed in, as long as it's a function
180
- * expect(mySpy).toHaveBeenCalledWith(jasmine.any(Function));
181
- *
182
- * @param {Class} clazz
183
- * @returns matchable object of the type clazz
184
- */
185
- jasmine.any = function(clazz) {
186
- return new jasmine.Matchers.Any(clazz);
187
- };
188
-
189
- /**
190
- * Jasmine Spies are test doubles that can act as stubs, spies, fakes or when used in an expecation, mocks.
191
- *
192
- * Spies should be created in test setup, before expectations. They can then be checked, using the standard Jasmine
193
- * expectation syntax. Spies can be checked if they were called or not and what the calling params were.
194
- *
195
- * A Spy has the following fields: wasCalled, callCount, mostRecentCall, and argsForCall (see docs).
196
- *
197
- * Spies are torn down at the end of every spec.
198
- *
199
- * Note: Do <b>not</b> call new jasmine.Spy() directly - a spy must be created using spyOn, jasmine.createSpy or jasmine.createSpyObj.
200
- *
201
- * @example
202
- * // a stub
203
- * var myStub = jasmine.createSpy('myStub'); // can be used anywhere
204
- *
205
- * // spy example
206
- * var foo = {
207
- * not: function(bool) { return !bool; }
208
- * }
209
- *
210
- * // actual foo.not will not be called, execution stops
211
- * spyOn(foo, 'not');
212
-
213
- // foo.not spied upon, execution will continue to implementation
214
- * spyOn(foo, 'not').andCallThrough();
215
- *
216
- * // fake example
217
- * var foo = {
218
- * not: function(bool) { return !bool; }
219
- * }
220
- *
221
- * // foo.not(val) will return val
222
- * spyOn(foo, 'not').andCallFake(function(value) {return value;});
223
- *
224
- * // mock example
225
- * foo.not(7 == 7);
226
- * expect(foo.not).toHaveBeenCalled();
227
- * expect(foo.not).toHaveBeenCalledWith(true);
228
- *
229
- * @constructor
230
- * @see spyOn, jasmine.createSpy, jasmine.createSpyObj
231
- * @param {String} name
232
- */
233
- jasmine.Spy = function(name) {
234
- /**
235
- * The name of the spy, if provided.
236
- */
237
- this.identity = name || 'unknown';
238
- /**
239
- * Is this Object a spy?
240
- */
241
- this.isSpy = true;
242
- /**
243
- * The actual function this spy stubs.
244
- */
245
- this.plan = function() {
246
- };
247
- /**
248
- * Tracking of the most recent call to the spy.
249
- * @example
250
- * var mySpy = jasmine.createSpy('foo');
251
- * mySpy(1, 2);
252
- * mySpy.mostRecentCall.args = [1, 2];
253
- */
254
- this.mostRecentCall = {};
255
-
256
- /**
257
- * Holds arguments for each call to the spy, indexed by call count
258
- * @example
259
- * var mySpy = jasmine.createSpy('foo');
260
- * mySpy(1, 2);
261
- * mySpy(7, 8);
262
- * mySpy.mostRecentCall.args = [7, 8];
263
- * mySpy.argsForCall[0] = [1, 2];
264
- * mySpy.argsForCall[1] = [7, 8];
265
- */
266
- this.argsForCall = [];
267
- this.calls = [];
268
- };
269
-
270
- /**
271
- * Tells a spy to call through to the actual implemenatation.
272
- *
273
- * @example
274
- * var foo = {
275
- * bar: function() { // do some stuff }
276
- * }
277
- *
278
- * // defining a spy on an existing property: foo.bar
279
- * spyOn(foo, 'bar').andCallThrough();
280
- */
281
- jasmine.Spy.prototype.andCallThrough = function() {
282
- this.plan = this.originalValue;
283
- return this;
284
- };
285
-
286
- /**
287
- * For setting the return value of a spy.
288
- *
289
- * @example
290
- * // defining a spy from scratch: foo() returns 'baz'
291
- * var foo = jasmine.createSpy('spy on foo').andReturn('baz');
292
- *
293
- * // defining a spy on an existing property: foo.bar() returns 'baz'
294
- * spyOn(foo, 'bar').andReturn('baz');
295
- *
296
- * @param {Object} value
297
- */
298
- jasmine.Spy.prototype.andReturn = function(value) {
299
- this.plan = function() {
300
- return value;
301
- };
302
- return this;
303
- };
304
-
305
- /**
306
- * For throwing an exception when a spy is called.
307
- *
308
- * @example
309
- * // defining a spy from scratch: foo() throws an exception w/ message 'ouch'
310
- * var foo = jasmine.createSpy('spy on foo').andThrow('baz');
311
- *
312
- * // defining a spy on an existing property: foo.bar() throws an exception w/ message 'ouch'
313
- * spyOn(foo, 'bar').andThrow('baz');
314
- *
315
- * @param {String} exceptionMsg
316
- */
317
- jasmine.Spy.prototype.andThrow = function(exceptionMsg) {
318
- this.plan = function() {
319
- throw exceptionMsg;
320
- };
321
- return this;
322
- };
323
-
324
- /**
325
- * Calls an alternate implementation when a spy is called.
326
- *
327
- * @example
328
- * var baz = function() {
329
- * // do some stuff, return something
330
- * }
331
- * // defining a spy from scratch: foo() calls the function baz
332
- * var foo = jasmine.createSpy('spy on foo').andCall(baz);
333
- *
334
- * // defining a spy on an existing property: foo.bar() calls an anonymnous function
335
- * spyOn(foo, 'bar').andCall(function() { return 'baz';} );
336
- *
337
- * @param {Function} fakeFunc
338
- */
339
- jasmine.Spy.prototype.andCallFake = function(fakeFunc) {
340
- this.plan = fakeFunc;
341
- return this;
342
- };
343
-
344
- /**
345
- * Resets all of a spy's the tracking variables so that it can be used again.
346
- *
347
- * @example
348
- * spyOn(foo, 'bar');
349
- *
350
- * foo.bar();
351
- *
352
- * expect(foo.bar.callCount).toEqual(1);
353
- *
354
- * foo.bar.reset();
355
- *
356
- * expect(foo.bar.callCount).toEqual(0);
357
- */
358
- jasmine.Spy.prototype.reset = function() {
359
- this.wasCalled = false;
360
- this.callCount = 0;
361
- this.argsForCall = [];
362
- this.calls = [];
363
- this.mostRecentCall = {};
364
- };
365
-
366
- jasmine.createSpy = function(name) {
367
-
368
- var spyObj = function() {
369
- spyObj.wasCalled = true;
370
- spyObj.callCount++;
371
- var args = jasmine.util.argsToArray(arguments);
372
- spyObj.mostRecentCall.object = this;
373
- spyObj.mostRecentCall.args = args;
374
- spyObj.argsForCall.push(args);
375
- spyObj.calls.push({object: this, args: args});
376
- return spyObj.plan.apply(this, arguments);
377
- };
378
-
379
- var spy = new jasmine.Spy(name);
380
-
381
- for (var prop in spy) {
382
- spyObj[prop] = spy[prop];
383
- }
384
-
385
- spyObj.reset();
386
-
387
- return spyObj;
388
- };
389
-
390
- /**
391
- * Determines whether an object is a spy.
392
- *
393
- * @param {jasmine.Spy|Object} putativeSpy
394
- * @returns {Boolean}
395
- */
396
- jasmine.isSpy = function(putativeSpy) {
397
- return putativeSpy && putativeSpy.isSpy;
398
- };
399
-
400
- /**
401
- * Creates a more complicated spy: an Object that has every property a function that is a spy. Used for stubbing something
402
- * large in one call.
403
- *
404
- * @param {String} baseName name of spy class
405
- * @param {Array} methodNames array of names of methods to make spies
406
- */
407
- jasmine.createSpyObj = function(baseName, methodNames) {
408
- if (!jasmine.isArray_(methodNames) || methodNames.length == 0) {
409
- throw new Error('createSpyObj requires a non-empty array of method names to create spies for');
410
- }
411
- var obj = {};
412
- for (var i = 0; i < methodNames.length; i++) {
413
- obj[methodNames[i]] = jasmine.createSpy(baseName + '.' + methodNames[i]);
414
- }
415
- return obj;
416
- };
417
-
418
- /**
419
- * All parameters are pretty-printed and concatenated together, then written to the current spec's output.
420
- *
421
- * Be careful not to leave calls to <code>jasmine.log</code> in production code.
422
- */
423
- jasmine.log = function() {
424
- var spec = jasmine.getEnv().currentSpec;
425
- spec.log.apply(spec, arguments);
426
- };
427
-
428
- /**
429
- * Function that installs a spy on an existing object's method name. Used within a Spec to create a spy.
430
- *
431
- * @example
432
- * // spy example
433
- * var foo = {
434
- * not: function(bool) { return !bool; }
435
- * }
436
- * spyOn(foo, 'not'); // actual foo.not will not be called, execution stops
437
- *
438
- * @see jasmine.createSpy
439
- * @param obj
440
- * @param methodName
441
- * @returns a Jasmine spy that can be chained with all spy methods
442
- */
443
- var spyOn = function(obj, methodName) {
444
- return jasmine.getEnv().currentSpec.spyOn(obj, methodName);
445
- };
446
-
447
- /**
448
- * Creates a Jasmine spec that will be added to the current suite.
449
- *
450
- * // TODO: pending tests
451
- *
452
- * @example
453
- * it('should be true', function() {
454
- * expect(true).toEqual(true);
455
- * });
456
- *
457
- * @param {String} desc description of this specification
458
- * @param {Function} func defines the preconditions and expectations of the spec
459
- */
460
- var it = function(desc, func) {
461
- return jasmine.getEnv().it(desc, func);
462
- };
463
-
464
- /**
465
- * Creates a <em>disabled</em> Jasmine spec.
466
- *
467
- * A convenience method that allows existing specs to be disabled temporarily during development.
468
- *
469
- * @param {String} desc description of this specification
470
- * @param {Function} func defines the preconditions and expectations of the spec
471
- */
472
- var xit = function(desc, func) {
473
- return jasmine.getEnv().xit(desc, func);
474
- };
475
-
476
- /**
477
- * Starts a chain for a Jasmine expectation.
478
- *
479
- * It is passed an Object that is the actual value and should chain to one of the many
480
- * jasmine.Matchers functions.
481
- *
482
- * @param {Object} actual Actual value to test against and expected value
483
- */
484
- var expect = function(actual) {
485
- return jasmine.getEnv().currentSpec.expect(actual);
486
- };
487
-
488
- /**
489
- * Defines part of a jasmine spec. Used in cominbination with waits or waitsFor in asynchrnous specs.
490
- *
491
- * @param {Function} func Function that defines part of a jasmine spec.
492
- */
493
- var runs = function(func) {
494
- jasmine.getEnv().currentSpec.runs(func);
495
- };
496
-
497
- /**
498
- * Waits a fixed time period before moving to the next block.
499
- *
500
- * @deprecated Use waitsFor() instead
501
- * @param {Number} timeout milliseconds to wait
502
- */
503
- var waits = function(timeout) {
504
- jasmine.getEnv().currentSpec.waits(timeout);
505
- };
506
-
507
- /**
508
- * Waits for the latchFunction to return true before proceeding to the next block.
509
- *
510
- * @param {Function} latchFunction
511
- * @param {String} optional_timeoutMessage
512
- * @param {Number} optional_timeout
513
- */
514
- var waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
515
- jasmine.getEnv().currentSpec.waitsFor.apply(jasmine.getEnv().currentSpec, arguments);
516
- };
517
-
518
- /**
519
- * A function that is called before each spec in a suite.
520
- *
521
- * Used for spec setup, including validating assumptions.
522
- *
523
- * @param {Function} beforeEachFunction
524
- */
525
- var beforeEach = function(beforeEachFunction) {
526
- jasmine.getEnv().beforeEach(beforeEachFunction);
527
- };
528
-
529
- /**
530
- * A function that is called after each spec in a suite.
531
- *
532
- * Used for restoring any state that is hijacked during spec execution.
533
- *
534
- * @param {Function} afterEachFunction
535
- */
536
- var afterEach = function(afterEachFunction) {
537
- jasmine.getEnv().afterEach(afterEachFunction);
538
- };
539
-
540
- /**
541
- * Defines a suite of specifications.
542
- *
543
- * Stores the description and all defined specs in the Jasmine environment as one suite of specs. Variables declared
544
- * are accessible by calls to beforeEach, it, and afterEach. Describe blocks can be nested, allowing for specialization
545
- * of setup in some tests.
546
- *
547
- * @example
548
- * // TODO: a simple suite
549
- *
550
- * // TODO: a simple suite with a nested describe block
551
- *
552
- * @param {String} description A string, usually the class under test.
553
- * @param {Function} specDefinitions function that defines several specs.
554
- */
555
- var describe = function(description, specDefinitions) {
556
- return jasmine.getEnv().describe(description, specDefinitions);
557
- };
558
-
559
- /**
560
- * Disables a suite of specifications. Used to disable some suites in a file, or files, temporarily during development.
561
- *
562
- * @param {String} description A string, usually the class under test.
563
- * @param {Function} specDefinitions function that defines several specs.
564
- */
565
- var xdescribe = function(description, specDefinitions) {
566
- return jasmine.getEnv().xdescribe(description, specDefinitions);
567
- };
568
-
569
-
570
- // Provide the XMLHttpRequest class for IE 5.x-6.x:
571
- jasmine.XmlHttpRequest = (typeof XMLHttpRequest == "undefined") ? function() {
572
- try {
573
- return new ActiveXObject("Msxml2.XMLHTTP.6.0");
574
- } catch(e) {
575
- }
576
- try {
577
- return new ActiveXObject("Msxml2.XMLHTTP.3.0");
578
- } catch(e) {
579
- }
580
- try {
581
- return new ActiveXObject("Msxml2.XMLHTTP");
582
- } catch(e) {
583
- }
584
- try {
585
- return new ActiveXObject("Microsoft.XMLHTTP");
586
- } catch(e) {
587
- }
588
- throw new Error("This browser does not support XMLHttpRequest.");
589
- } : XMLHttpRequest;
590
- /**
591
- * @namespace
592
- */
593
- jasmine.util = {};
594
-
595
- /**
596
- * Declare that a child class inherit it's prototype from the parent class.
597
- *
598
- * @private
599
- * @param {Function} childClass
600
- * @param {Function} parentClass
601
- */
602
- jasmine.util.inherit = function(childClass, parentClass) {
603
- /**
604
- * @private
605
- */
606
- var subclass = function() {
607
- };
608
- subclass.prototype = parentClass.prototype;
609
- childClass.prototype = new subclass;
610
- };
611
-
612
- jasmine.util.formatException = function(e) {
613
- var lineNumber;
614
- if (e.line) {
615
- lineNumber = e.line;
616
- }
617
- else if (e.lineNumber) {
618
- lineNumber = e.lineNumber;
619
- }
620
-
621
- var file;
622
-
623
- if (e.sourceURL) {
624
- file = e.sourceURL;
625
- }
626
- else if (e.fileName) {
627
- file = e.fileName;
628
- }
629
-
630
- var message = (e.name && e.message) ? (e.name + ': ' + e.message) : e.toString();
631
-
632
- if (file && lineNumber) {
633
- message += ' in ' + file + ' (line ' + lineNumber + ')';
634
- }
635
-
636
- return message;
637
- };
638
-
639
- jasmine.util.htmlEscape = function(str) {
640
- if (!str) return str;
641
- return str.replace(/&/g, '&amp;')
642
- .replace(/</g, '&lt;')
643
- .replace(/>/g, '&gt;');
644
- };
645
-
646
- jasmine.util.argsToArray = function(args) {
647
- var arrayOfArgs = [];
648
- for (var i = 0; i < args.length; i++) arrayOfArgs.push(args[i]);
649
- return arrayOfArgs;
650
- };
651
-
652
- jasmine.util.extend = function(destination, source) {
653
- for (var property in source) destination[property] = source[property];
654
- return destination;
655
- };
656
-
657
- /**
658
- * Environment for Jasmine
659
- *
660
- * @constructor
661
- */
662
- jasmine.Env = function() {
663
- this.currentSpec = null;
664
- this.currentSuite = null;
665
- this.currentRunner_ = new jasmine.Runner(this);
666
-
667
- this.reporter = new jasmine.MultiReporter();
668
-
669
- this.updateInterval = jasmine.DEFAULT_UPDATE_INTERVAL;
670
- this.defaultTimeoutInterval = jasmine.DEFAULT_TIMEOUT_INTERVAL;
671
- this.lastUpdate = 0;
672
- this.specFilter = function() {
673
- return true;
674
- };
675
-
676
- this.nextSpecId_ = 0;
677
- this.nextSuiteId_ = 0;
678
- this.equalityTesters_ = [];
679
-
680
- // wrap matchers
681
- this.matchersClass = function() {
682
- jasmine.Matchers.apply(this, arguments);
683
- };
684
- jasmine.util.inherit(this.matchersClass, jasmine.Matchers);
685
-
686
- jasmine.Matchers.wrapInto_(jasmine.Matchers.prototype, this.matchersClass);
687
- };
688
-
689
-
690
- jasmine.Env.prototype.setTimeout = jasmine.setTimeout;
691
- jasmine.Env.prototype.clearTimeout = jasmine.clearTimeout;
692
- jasmine.Env.prototype.setInterval = jasmine.setInterval;
693
- jasmine.Env.prototype.clearInterval = jasmine.clearInterval;
694
-
695
- /**
696
- * @returns an object containing jasmine version build info, if set.
697
- */
698
- jasmine.Env.prototype.version = function () {
699
- if (jasmine.version_) {
700
- return jasmine.version_;
701
- } else {
702
- throw new Error('Version not set');
703
- }
704
- };
705
-
706
- /**
707
- * @returns string containing jasmine version build info, if set.
708
- */
709
- jasmine.Env.prototype.versionString = function() {
710
- if (jasmine.version_) {
711
- var version = this.version();
712
- return version.major + "." + version.minor + "." + version.build + " revision " + version.revision;
713
- } else {
714
- return "version unknown";
715
- }
716
- };
717
-
718
- /**
719
- * @returns a sequential integer starting at 0
720
- */
721
- jasmine.Env.prototype.nextSpecId = function () {
722
- return this.nextSpecId_++;
723
- };
724
-
725
- /**
726
- * @returns a sequential integer starting at 0
727
- */
728
- jasmine.Env.prototype.nextSuiteId = function () {
729
- return this.nextSuiteId_++;
730
- };
731
-
732
- /**
733
- * Register a reporter to receive status updates from Jasmine.
734
- * @param {jasmine.Reporter} reporter An object which will receive status updates.
735
- */
736
- jasmine.Env.prototype.addReporter = function(reporter) {
737
- this.reporter.addReporter(reporter);
738
- };
739
-
740
- jasmine.Env.prototype.execute = function() {
741
- this.currentRunner_.execute();
742
- };
743
-
744
- jasmine.Env.prototype.describe = function(description, specDefinitions) {
745
- var suite = new jasmine.Suite(this, description, specDefinitions, this.currentSuite);
746
-
747
- var parentSuite = this.currentSuite;
748
- if (parentSuite) {
749
- parentSuite.add(suite);
750
- } else {
751
- this.currentRunner_.add(suite);
752
- }
753
-
754
- this.currentSuite = suite;
755
-
756
- var declarationError = null;
757
- try {
758
- specDefinitions.call(suite);
759
- } catch(e) {
760
- declarationError = e;
761
- }
762
-
763
- this.currentSuite = parentSuite;
764
-
765
- if (declarationError) {
766
- this.it("encountered a declaration exception", function() {
767
- throw declarationError;
768
- });
769
- }
770
-
771
- return suite;
772
- };
773
-
774
- jasmine.Env.prototype.beforeEach = function(beforeEachFunction) {
775
- if (this.currentSuite) {
776
- this.currentSuite.beforeEach(beforeEachFunction);
777
- } else {
778
- this.currentRunner_.beforeEach(beforeEachFunction);
779
- }
780
- };
781
-
782
- jasmine.Env.prototype.currentRunner = function () {
783
- return this.currentRunner_;
784
- };
785
-
786
- jasmine.Env.prototype.afterEach = function(afterEachFunction) {
787
- if (this.currentSuite) {
788
- this.currentSuite.afterEach(afterEachFunction);
789
- } else {
790
- this.currentRunner_.afterEach(afterEachFunction);
791
- }
792
-
793
- };
794
-
795
- jasmine.Env.prototype.xdescribe = function(desc, specDefinitions) {
796
- return {
797
- execute: function() {
798
- }
799
- };
800
- };
801
-
802
- jasmine.Env.prototype.it = function(description, func) {
803
- var spec = new jasmine.Spec(this, this.currentSuite, description);
804
- this.currentSuite.add(spec);
805
- this.currentSpec = spec;
806
-
807
- if (func) {
808
- spec.runs(func);
809
- }
810
-
811
- return spec;
812
- };
813
-
814
- jasmine.Env.prototype.xit = function(desc, func) {
815
- return {
816
- id: this.nextSpecId(),
817
- runs: function() {
818
- }
819
- };
820
- };
821
-
822
- jasmine.Env.prototype.compareObjects_ = function(a, b, mismatchKeys, mismatchValues) {
823
- if (a.__Jasmine_been_here_before__ === b && b.__Jasmine_been_here_before__ === a) {
824
- return true;
825
- }
826
-
827
- a.__Jasmine_been_here_before__ = b;
828
- b.__Jasmine_been_here_before__ = a;
829
-
830
- var hasKey = function(obj, keyName) {
831
- return obj != null && obj[keyName] !== jasmine.undefined;
832
- };
833
-
834
- for (var property in b) {
835
- if (!hasKey(a, property) && hasKey(b, property)) {
836
- mismatchKeys.push("expected has key '" + property + "', but missing from actual.");
837
- }
838
- }
839
- for (property in a) {
840
- if (!hasKey(b, property) && hasKey(a, property)) {
841
- mismatchKeys.push("expected missing key '" + property + "', but present in actual.");
842
- }
843
- }
844
- for (property in b) {
845
- if (property == '__Jasmine_been_here_before__') continue;
846
- if (!this.equals_(a[property], b[property], mismatchKeys, mismatchValues)) {
847
- mismatchValues.push("'" + property + "' was '" + (b[property] ? jasmine.util.htmlEscape(b[property].toString()) : b[property]) + "' in expected, but was '" + (a[property] ? jasmine.util.htmlEscape(a[property].toString()) : a[property]) + "' in actual.");
848
- }
849
- }
850
-
851
- if (jasmine.isArray_(a) && jasmine.isArray_(b) && a.length != b.length) {
852
- mismatchValues.push("arrays were not the same length");
853
- }
854
-
855
- delete a.__Jasmine_been_here_before__;
856
- delete b.__Jasmine_been_here_before__;
857
- return (mismatchKeys.length == 0 && mismatchValues.length == 0);
858
- };
859
-
860
- jasmine.Env.prototype.equals_ = function(a, b, mismatchKeys, mismatchValues) {
861
- mismatchKeys = mismatchKeys || [];
862
- mismatchValues = mismatchValues || [];
863
-
864
- for (var i = 0; i < this.equalityTesters_.length; i++) {
865
- var equalityTester = this.equalityTesters_[i];
866
- var result = equalityTester(a, b, this, mismatchKeys, mismatchValues);
867
- if (result !== jasmine.undefined) return result;
868
- }
869
-
870
- if (a === b) return true;
871
-
872
- if (a === jasmine.undefined || a === null || b === jasmine.undefined || b === null) {
873
- return (a == jasmine.undefined && b == jasmine.undefined);
874
- }
875
-
876
- if (jasmine.isDomNode(a) && jasmine.isDomNode(b)) {
877
- return a === b;
878
- }
879
-
880
- if (a instanceof Date && b instanceof Date) {
881
- return a.getTime() == b.getTime();
882
- }
883
-
884
- if (a instanceof jasmine.Matchers.Any) {
885
- return a.matches(b);
886
- }
887
-
888
- if (b instanceof jasmine.Matchers.Any) {
889
- return b.matches(a);
890
- }
891
-
892
- if (jasmine.isString_(a) && jasmine.isString_(b)) {
893
- return (a == b);
894
- }
895
-
896
- if (jasmine.isNumber_(a) && jasmine.isNumber_(b)) {
897
- return (a == b);
898
- }
899
-
900
- if (typeof a === "object" && typeof b === "object") {
901
- return this.compareObjects_(a, b, mismatchKeys, mismatchValues);
902
- }
903
-
904
- //Straight check
905
- return (a === b);
906
- };
907
-
908
- jasmine.Env.prototype.contains_ = function(haystack, needle) {
909
- if (jasmine.isArray_(haystack)) {
910
- for (var i = 0; i < haystack.length; i++) {
911
- if (this.equals_(haystack[i], needle)) return true;
912
- }
913
- return false;
914
- }
915
- return haystack.indexOf(needle) >= 0;
916
- };
917
-
918
- jasmine.Env.prototype.addEqualityTester = function(equalityTester) {
919
- this.equalityTesters_.push(equalityTester);
920
- };
921
- /** No-op base class for Jasmine reporters.
922
- *
923
- * @constructor
924
- */
925
- jasmine.Reporter = function() {
926
- };
927
-
928
- //noinspection JSUnusedLocalSymbols
929
- jasmine.Reporter.prototype.reportRunnerStarting = function(runner) {
930
- };
931
-
932
- //noinspection JSUnusedLocalSymbols
933
- jasmine.Reporter.prototype.reportRunnerResults = function(runner) {
934
- };
935
-
936
- //noinspection JSUnusedLocalSymbols
937
- jasmine.Reporter.prototype.reportSuiteResults = function(suite) {
938
- };
939
-
940
- //noinspection JSUnusedLocalSymbols
941
- jasmine.Reporter.prototype.reportSpecStarting = function(spec) {
942
- };
943
-
944
- //noinspection JSUnusedLocalSymbols
945
- jasmine.Reporter.prototype.reportSpecResults = function(spec) {
946
- };
947
-
948
- //noinspection JSUnusedLocalSymbols
949
- jasmine.Reporter.prototype.log = function(str) {
950
- };
951
-
952
- /**
953
- * Blocks are functions with executable code that make up a spec.
954
- *
955
- * @constructor
956
- * @param {jasmine.Env} env
957
- * @param {Function} func
958
- * @param {jasmine.Spec} spec
959
- */
960
- jasmine.Block = function(env, func, spec) {
961
- this.env = env;
962
- this.func = func;
963
- this.spec = spec;
964
- };
965
-
966
- jasmine.Block.prototype.execute = function(onComplete) {
967
- try {
968
- this.func.apply(this.spec);
969
- } catch (e) {
970
- this.spec.fail(e);
971
- }
972
- onComplete();
973
- };
974
- /** JavaScript API reporter.
975
- *
976
- * @constructor
977
- */
978
- jasmine.JsApiReporter = function() {
979
- this.started = false;
980
- this.finished = false;
981
- this.suites_ = [];
982
- this.results_ = {};
983
- };
984
-
985
- jasmine.JsApiReporter.prototype.reportRunnerStarting = function(runner) {
986
- this.started = true;
987
- var suites = runner.topLevelSuites();
988
- for (var i = 0; i < suites.length; i++) {
989
- var suite = suites[i];
990
- this.suites_.push(this.summarize_(suite));
991
- }
992
- };
993
-
994
- jasmine.JsApiReporter.prototype.suites = function() {
995
- return this.suites_;
996
- };
997
-
998
- jasmine.JsApiReporter.prototype.summarize_ = function(suiteOrSpec) {
999
- var isSuite = suiteOrSpec instanceof jasmine.Suite;
1000
- var summary = {
1001
- id: suiteOrSpec.id,
1002
- name: suiteOrSpec.description,
1003
- type: isSuite ? 'suite' : 'spec',
1004
- children: []
1005
- };
1006
-
1007
- if (isSuite) {
1008
- var children = suiteOrSpec.children();
1009
- for (var i = 0; i < children.length; i++) {
1010
- summary.children.push(this.summarize_(children[i]));
1011
- }
1012
- }
1013
- return summary;
1014
- };
1015
-
1016
- jasmine.JsApiReporter.prototype.results = function() {
1017
- return this.results_;
1018
- };
1019
-
1020
- jasmine.JsApiReporter.prototype.resultsForSpec = function(specId) {
1021
- return this.results_[specId];
1022
- };
1023
-
1024
- //noinspection JSUnusedLocalSymbols
1025
- jasmine.JsApiReporter.prototype.reportRunnerResults = function(runner) {
1026
- this.finished = true;
1027
- };
1028
-
1029
- //noinspection JSUnusedLocalSymbols
1030
- jasmine.JsApiReporter.prototype.reportSuiteResults = function(suite) {
1031
- };
1032
-
1033
- //noinspection JSUnusedLocalSymbols
1034
- jasmine.JsApiReporter.prototype.reportSpecResults = function(spec) {
1035
- this.results_[spec.id] = {
1036
- messages: spec.results().getItems(),
1037
- result: spec.results().failedCount > 0 ? "failed" : "passed"
1038
- };
1039
- };
1040
-
1041
- //noinspection JSUnusedLocalSymbols
1042
- jasmine.JsApiReporter.prototype.log = function(str) {
1043
- };
1044
-
1045
- jasmine.JsApiReporter.prototype.resultsForSpecs = function(specIds){
1046
- var results = {};
1047
- for (var i = 0; i < specIds.length; i++) {
1048
- var specId = specIds[i];
1049
- results[specId] = this.summarizeResult_(this.results_[specId]);
1050
- }
1051
- return results;
1052
- };
1053
-
1054
- jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
1055
- var summaryMessages = [];
1056
- var messagesLength = result.messages.length;
1057
- for (var messageIndex = 0; messageIndex < messagesLength; messageIndex++) {
1058
- var resultMessage = result.messages[messageIndex];
1059
- summaryMessages.push({
1060
- text: resultMessage.type == 'log' ? resultMessage.toString() : jasmine.undefined,
1061
- passed: resultMessage.passed ? resultMessage.passed() : true,
1062
- type: resultMessage.type,
1063
- message: resultMessage.message,
1064
- trace: {
1065
- stack: resultMessage.passed && !resultMessage.passed() ? resultMessage.trace.stack : jasmine.undefined
1066
- }
1067
- });
1068
- }
1069
-
1070
- return {
1071
- result : result.result,
1072
- messages : summaryMessages
1073
- };
1074
- };
1075
-
1076
- /**
1077
- * @constructor
1078
- * @param {jasmine.Env} env
1079
- * @param actual
1080
- * @param {jasmine.Spec} spec
1081
- */
1082
- jasmine.Matchers = function(env, actual, spec, opt_isNot) {
1083
- this.env = env;
1084
- this.actual = actual;
1085
- this.spec = spec;
1086
- this.isNot = opt_isNot || false;
1087
- this.reportWasCalled_ = false;
1088
- };
1089
-
1090
- // todo: @deprecated as of Jasmine 0.11, remove soon [xw]
1091
- jasmine.Matchers.pp = function(str) {
1092
- throw new Error("jasmine.Matchers.pp() is no longer supported, please use jasmine.pp() instead!");
1093
- };
1094
-
1095
- // todo: @deprecated Deprecated as of Jasmine 0.10. Rewrite your custom matchers to return true or false. [xw]
1096
- jasmine.Matchers.prototype.report = function(result, failing_message, details) {
1097
- throw new Error("As of jasmine 0.11, custom matchers must be implemented differently -- please see jasmine docs");
1098
- };
1099
-
1100
- jasmine.Matchers.wrapInto_ = function(prototype, matchersClass) {
1101
- for (var methodName in prototype) {
1102
- if (methodName == 'report') continue;
1103
- var orig = prototype[methodName];
1104
- matchersClass.prototype[methodName] = jasmine.Matchers.matcherFn_(methodName, orig);
1105
- }
1106
- };
1107
-
1108
- jasmine.Matchers.matcherFn_ = function(matcherName, matcherFunction) {
1109
- return function() {
1110
- var matcherArgs = jasmine.util.argsToArray(arguments);
1111
- var result = matcherFunction.apply(this, arguments);
1112
-
1113
- if (this.isNot) {
1114
- result = !result;
1115
- }
1116
-
1117
- if (this.reportWasCalled_) return result;
1118
-
1119
- var message;
1120
- if (!result) {
1121
- if (this.message) {
1122
- message = this.message.apply(this, arguments);
1123
- if (jasmine.isArray_(message)) {
1124
- message = message[this.isNot ? 1 : 0];
1125
- }
1126
- } else {
1127
- var englishyPredicate = matcherName.replace(/[A-Z]/g, function(s) { return ' ' + s.toLowerCase(); });
1128
- message = "Expected " + jasmine.pp(this.actual) + (this.isNot ? " not " : " ") + englishyPredicate;
1129
- if (matcherArgs.length > 0) {
1130
- for (var i = 0; i < matcherArgs.length; i++) {
1131
- if (i > 0) message += ",";
1132
- message += " " + jasmine.pp(matcherArgs[i]);
1133
- }
1134
- }
1135
- message += ".";
1136
- }
1137
- }
1138
- var expectationResult = new jasmine.ExpectationResult({
1139
- matcherName: matcherName,
1140
- passed: result,
1141
- expected: matcherArgs.length > 1 ? matcherArgs : matcherArgs[0],
1142
- actual: this.actual,
1143
- message: message
1144
- });
1145
- this.spec.addMatcherResult(expectationResult);
1146
- return jasmine.undefined;
1147
- };
1148
- };
1149
-
1150
-
1151
-
1152
-
1153
- /**
1154
- * toBe: compares the actual to the expected using ===
1155
- * @param expected
1156
- */
1157
- jasmine.Matchers.prototype.toBe = function(expected) {
1158
- return this.actual === expected;
1159
- };
1160
-
1161
- /**
1162
- * toNotBe: compares the actual to the expected using !==
1163
- * @param expected
1164
- * @deprecated as of 1.0. Use not.toBe() instead.
1165
- */
1166
- jasmine.Matchers.prototype.toNotBe = function(expected) {
1167
- return this.actual !== expected;
1168
- };
1169
-
1170
- /**
1171
- * toEqual: compares the actual to the expected using common sense equality. Handles Objects, Arrays, etc.
1172
- *
1173
- * @param expected
1174
- */
1175
- jasmine.Matchers.prototype.toEqual = function(expected) {
1176
- return this.env.equals_(this.actual, expected);
1177
- };
1178
-
1179
- /**
1180
- * toNotEqual: compares the actual to the expected using the ! of jasmine.Matchers.toEqual
1181
- * @param expected
1182
- * @deprecated as of 1.0. Use not.toNotEqual() instead.
1183
- */
1184
- jasmine.Matchers.prototype.toNotEqual = function(expected) {
1185
- return !this.env.equals_(this.actual, expected);
1186
- };
1187
-
1188
- /**
1189
- * Matcher that compares the actual to the expected using a regular expression. Constructs a RegExp, so takes
1190
- * a pattern or a String.
1191
- *
1192
- * @param expected
1193
- */
1194
- jasmine.Matchers.prototype.toMatch = function(expected) {
1195
- return new RegExp(expected).test(this.actual);
1196
- };
1197
-
1198
- /**
1199
- * Matcher that compares the actual to the expected using the boolean inverse of jasmine.Matchers.toMatch
1200
- * @param expected
1201
- * @deprecated as of 1.0. Use not.toMatch() instead.
1202
- */
1203
- jasmine.Matchers.prototype.toNotMatch = function(expected) {
1204
- return !(new RegExp(expected).test(this.actual));
1205
- };
1206
-
1207
- /**
1208
- * Matcher that compares the actual to jasmine.undefined.
1209
- */
1210
- jasmine.Matchers.prototype.toBeDefined = function() {
1211
- return (this.actual !== jasmine.undefined);
1212
- };
1213
-
1214
- /**
1215
- * Matcher that compares the actual to jasmine.undefined.
1216
- */
1217
- jasmine.Matchers.prototype.toBeUndefined = function() {
1218
- return (this.actual === jasmine.undefined);
1219
- };
1220
-
1221
- /**
1222
- * Matcher that compares the actual to null.
1223
- */
1224
- jasmine.Matchers.prototype.toBeNull = function() {
1225
- return (this.actual === null);
1226
- };
1227
-
1228
- /**
1229
- * Matcher that boolean not-nots the actual.
1230
- */
1231
- jasmine.Matchers.prototype.toBeTruthy = function() {
1232
- return !!this.actual;
1233
- };
1234
-
1235
-
1236
- /**
1237
- * Matcher that boolean nots the actual.
1238
- */
1239
- jasmine.Matchers.prototype.toBeFalsy = function() {
1240
- return !this.actual;
1241
- };
1242
-
1243
-
1244
- /**
1245
- * Matcher that checks to see if the actual, a Jasmine spy, was called.
1246
- */
1247
- jasmine.Matchers.prototype.toHaveBeenCalled = function() {
1248
- if (arguments.length > 0) {
1249
- throw new Error('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith');
1250
- }
1251
-
1252
- if (!jasmine.isSpy(this.actual)) {
1253
- throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
1254
- }
1255
-
1256
- this.message = function() {
1257
- return [
1258
- "Expected spy " + this.actual.identity + " to have been called.",
1259
- "Expected spy " + this.actual.identity + " not to have been called."
1260
- ];
1261
- };
1262
-
1263
- return this.actual.wasCalled;
1264
- };
1265
-
1266
- /** @deprecated Use expect(xxx).toHaveBeenCalled() instead */
1267
- jasmine.Matchers.prototype.wasCalled = jasmine.Matchers.prototype.toHaveBeenCalled;
1268
-
1269
- /**
1270
- * Matcher that checks to see if the actual, a Jasmine spy, was not called.
1271
- *
1272
- * @deprecated Use expect(xxx).not.toHaveBeenCalled() instead
1273
- */
1274
- jasmine.Matchers.prototype.wasNotCalled = function() {
1275
- if (arguments.length > 0) {
1276
- throw new Error('wasNotCalled does not take arguments');
1277
- }
1278
-
1279
- if (!jasmine.isSpy(this.actual)) {
1280
- throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
1281
- }
1282
-
1283
- this.message = function() {
1284
- return [
1285
- "Expected spy " + this.actual.identity + " to not have been called.",
1286
- "Expected spy " + this.actual.identity + " to have been called."
1287
- ];
1288
- };
1289
-
1290
- return !this.actual.wasCalled;
1291
- };
1292
-
1293
- /**
1294
- * Matcher that checks to see if the actual, a Jasmine spy, was called with a set of parameters.
1295
- *
1296
- * @example
1297
- *
1298
- */
1299
- jasmine.Matchers.prototype.toHaveBeenCalledWith = function() {
1300
- var expectedArgs = jasmine.util.argsToArray(arguments);
1301
- if (!jasmine.isSpy(this.actual)) {
1302
- throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
1303
- }
1304
- this.message = function() {
1305
- if (this.actual.callCount == 0) {
1306
- // todo: what should the failure message for .not.toHaveBeenCalledWith() be? is this right? test better. [xw]
1307
- return [
1308
- "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was never called.",
1309
- "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was."
1310
- ];
1311
- } else {
1312
- return [
1313
- "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall),
1314
- "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall)
1315
- ];
1316
- }
1317
- };
1318
-
1319
- return this.env.contains_(this.actual.argsForCall, expectedArgs);
1320
- };
1321
-
1322
- /** @deprecated Use expect(xxx).toHaveBeenCalledWith() instead */
1323
- jasmine.Matchers.prototype.wasCalledWith = jasmine.Matchers.prototype.toHaveBeenCalledWith;
1324
-
1325
- /** @deprecated Use expect(xxx).not.toHaveBeenCalledWith() instead */
1326
- jasmine.Matchers.prototype.wasNotCalledWith = function() {
1327
- var expectedArgs = jasmine.util.argsToArray(arguments);
1328
- if (!jasmine.isSpy(this.actual)) {
1329
- throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
1330
- }
1331
-
1332
- this.message = function() {
1333
- return [
1334
- "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was",
1335
- "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was"
1336
- ]
1337
- };
1338
-
1339
- return !this.env.contains_(this.actual.argsForCall, expectedArgs);
1340
- };
1341
-
1342
- /**
1343
- * Matcher that checks that the expected item is an element in the actual Array.
1344
- *
1345
- * @param {Object} expected
1346
- */
1347
- jasmine.Matchers.prototype.toContain = function(expected) {
1348
- return this.env.contains_(this.actual, expected);
1349
- };
1350
-
1351
- /**
1352
- * Matcher that checks that the expected item is NOT an element in the actual Array.
1353
- *
1354
- * @param {Object} expected
1355
- * @deprecated as of 1.0. Use not.toNotContain() instead.
1356
- */
1357
- jasmine.Matchers.prototype.toNotContain = function(expected) {
1358
- return !this.env.contains_(this.actual, expected);
1359
- };
1360
-
1361
- jasmine.Matchers.prototype.toBeLessThan = function(expected) {
1362
- return this.actual < expected;
1363
- };
1364
-
1365
- jasmine.Matchers.prototype.toBeGreaterThan = function(expected) {
1366
- return this.actual > expected;
1367
- };
1368
-
1369
- /**
1370
- * Matcher that checks that the expected exception was thrown by the actual.
1371
- *
1372
- * @param {String} expected
1373
- */
1374
- jasmine.Matchers.prototype.toThrow = function(expected) {
1375
- var result = false;
1376
- var exception;
1377
- if (typeof this.actual != 'function') {
1378
- throw new Error('Actual is not a function');
1379
- }
1380
- try {
1381
- this.actual();
1382
- } catch (e) {
1383
- exception = e;
1384
- }
1385
- if (exception) {
1386
- result = (expected === jasmine.undefined || this.env.equals_(exception.message || exception, expected.message || expected));
1387
- }
1388
-
1389
- var not = this.isNot ? "not " : "";
1390
-
1391
- this.message = function() {
1392
- if (exception && (expected === jasmine.undefined || !this.env.equals_(exception.message || exception, expected.message || expected))) {
1393
- return ["Expected function " + not + "to throw", expected ? expected.message || expected : " an exception", ", but it threw", exception.message || exception].join(' ');
1394
- } else {
1395
- return "Expected function to throw an exception.";
1396
- }
1397
- };
1398
-
1399
- return result;
1400
- };
1401
-
1402
- jasmine.Matchers.Any = function(expectedClass) {
1403
- this.expectedClass = expectedClass;
1404
- };
1405
-
1406
- jasmine.Matchers.Any.prototype.matches = function(other) {
1407
- if (this.expectedClass == String) {
1408
- return typeof other == 'string' || other instanceof String;
1409
- }
1410
-
1411
- if (this.expectedClass == Number) {
1412
- return typeof other == 'number' || other instanceof Number;
1413
- }
1414
-
1415
- if (this.expectedClass == Function) {
1416
- return typeof other == 'function' || other instanceof Function;
1417
- }
1418
-
1419
- if (this.expectedClass == Object) {
1420
- return typeof other == 'object';
1421
- }
1422
-
1423
- return other instanceof this.expectedClass;
1424
- };
1425
-
1426
- jasmine.Matchers.Any.prototype.toString = function() {
1427
- return '<jasmine.any(' + this.expectedClass + ')>';
1428
- };
1429
-
1430
- /**
1431
- * @constructor
1432
- */
1433
- jasmine.MultiReporter = function() {
1434
- this.subReporters_ = [];
1435
- };
1436
- jasmine.util.inherit(jasmine.MultiReporter, jasmine.Reporter);
1437
-
1438
- jasmine.MultiReporter.prototype.addReporter = function(reporter) {
1439
- this.subReporters_.push(reporter);
1440
- };
1441
-
1442
- (function() {
1443
- var functionNames = [
1444
- "reportRunnerStarting",
1445
- "reportRunnerResults",
1446
- "reportSuiteResults",
1447
- "reportSpecStarting",
1448
- "reportSpecResults",
1449
- "log"
1450
- ];
1451
- for (var i = 0; i < functionNames.length; i++) {
1452
- var functionName = functionNames[i];
1453
- jasmine.MultiReporter.prototype[functionName] = (function(functionName) {
1454
- return function() {
1455
- for (var j = 0; j < this.subReporters_.length; j++) {
1456
- var subReporter = this.subReporters_[j];
1457
- if (subReporter[functionName]) {
1458
- subReporter[functionName].apply(subReporter, arguments);
1459
- }
1460
- }
1461
- };
1462
- })(functionName);
1463
- }
1464
- })();
1465
- /**
1466
- * Holds results for a set of Jasmine spec. Allows for the results array to hold another jasmine.NestedResults
1467
- *
1468
- * @constructor
1469
- */
1470
- jasmine.NestedResults = function() {
1471
- /**
1472
- * The total count of results
1473
- */
1474
- this.totalCount = 0;
1475
- /**
1476
- * Number of passed results
1477
- */
1478
- this.passedCount = 0;
1479
- /**
1480
- * Number of failed results
1481
- */
1482
- this.failedCount = 0;
1483
- /**
1484
- * Was this suite/spec skipped?
1485
- */
1486
- this.skipped = false;
1487
- /**
1488
- * @ignore
1489
- */
1490
- this.items_ = [];
1491
- };
1492
-
1493
- /**
1494
- * Roll up the result counts.
1495
- *
1496
- * @param result
1497
- */
1498
- jasmine.NestedResults.prototype.rollupCounts = function(result) {
1499
- this.totalCount += result.totalCount;
1500
- this.passedCount += result.passedCount;
1501
- this.failedCount += result.failedCount;
1502
- };
1503
-
1504
- /**
1505
- * Adds a log message.
1506
- * @param values Array of message parts which will be concatenated later.
1507
- */
1508
- jasmine.NestedResults.prototype.log = function(values) {
1509
- this.items_.push(new jasmine.MessageResult(values));
1510
- };
1511
-
1512
- /**
1513
- * Getter for the results: message & results.
1514
- */
1515
- jasmine.NestedResults.prototype.getItems = function() {
1516
- return this.items_;
1517
- };
1518
-
1519
- /**
1520
- * Adds a result, tracking counts (total, passed, & failed)
1521
- * @param {jasmine.ExpectationResult|jasmine.NestedResults} result
1522
- */
1523
- jasmine.NestedResults.prototype.addResult = function(result) {
1524
- if (result.type != 'log') {
1525
- if (result.items_) {
1526
- this.rollupCounts(result);
1527
- } else {
1528
- this.totalCount++;
1529
- if (result.passed()) {
1530
- this.passedCount++;
1531
- } else {
1532
- this.failedCount++;
1533
- }
1534
- }
1535
- }
1536
- this.items_.push(result);
1537
- };
1538
-
1539
- /**
1540
- * @returns {Boolean} True if <b>everything</b> below passed
1541
- */
1542
- jasmine.NestedResults.prototype.passed = function() {
1543
- return this.passedCount === this.totalCount;
1544
- };
1545
- /**
1546
- * Base class for pretty printing for expectation results.
1547
- */
1548
- jasmine.PrettyPrinter = function() {
1549
- this.ppNestLevel_ = 0;
1550
- };
1551
-
1552
- /**
1553
- * Formats a value in a nice, human-readable string.
1554
- *
1555
- * @param value
1556
- */
1557
- jasmine.PrettyPrinter.prototype.format = function(value) {
1558
- if (this.ppNestLevel_ > 40) {
1559
- throw new Error('jasmine.PrettyPrinter: format() nested too deeply!');
1560
- }
1561
-
1562
- this.ppNestLevel_++;
1563
- try {
1564
- if (value === jasmine.undefined) {
1565
- this.emitScalar('undefined');
1566
- } else if (value === null) {
1567
- this.emitScalar('null');
1568
- } else if (value === jasmine.getGlobal()) {
1569
- this.emitScalar('<global>');
1570
- } else if (value instanceof jasmine.Matchers.Any) {
1571
- this.emitScalar(value.toString());
1572
- } else if (typeof value === 'string') {
1573
- this.emitString(value);
1574
- } else if (jasmine.isSpy(value)) {
1575
- this.emitScalar("spy on " + value.identity);
1576
- } else if (value instanceof RegExp) {
1577
- this.emitScalar(value.toString());
1578
- } else if (typeof value === 'function') {
1579
- this.emitScalar('Function');
1580
- } else if (typeof value.nodeType === 'number') {
1581
- this.emitScalar('HTMLNode');
1582
- } else if (value instanceof Date) {
1583
- this.emitScalar('Date(' + value + ')');
1584
- } else if (value.__Jasmine_been_here_before__) {
1585
- this.emitScalar('<circular reference: ' + (jasmine.isArray_(value) ? 'Array' : 'Object') + '>');
1586
- } else if (jasmine.isArray_(value) || typeof value == 'object') {
1587
- value.__Jasmine_been_here_before__ = true;
1588
- if (jasmine.isArray_(value)) {
1589
- this.emitArray(value);
1590
- } else {
1591
- this.emitObject(value);
1592
- }
1593
- delete value.__Jasmine_been_here_before__;
1594
- } else {
1595
- this.emitScalar(value.toString());
1596
- }
1597
- } finally {
1598
- this.ppNestLevel_--;
1599
- }
1600
- };
1601
-
1602
- jasmine.PrettyPrinter.prototype.iterateObject = function(obj, fn) {
1603
- for (var property in obj) {
1604
- if (property == '__Jasmine_been_here_before__') continue;
1605
- fn(property, obj.__lookupGetter__ ? (obj.__lookupGetter__(property) != null) : false);
1606
- }
1607
- };
1608
-
1609
- jasmine.PrettyPrinter.prototype.emitArray = jasmine.unimplementedMethod_;
1610
- jasmine.PrettyPrinter.prototype.emitObject = jasmine.unimplementedMethod_;
1611
- jasmine.PrettyPrinter.prototype.emitScalar = jasmine.unimplementedMethod_;
1612
- jasmine.PrettyPrinter.prototype.emitString = jasmine.unimplementedMethod_;
1613
-
1614
- jasmine.StringPrettyPrinter = function() {
1615
- jasmine.PrettyPrinter.call(this);
1616
-
1617
- this.string = '';
1618
- };
1619
- jasmine.util.inherit(jasmine.StringPrettyPrinter, jasmine.PrettyPrinter);
1620
-
1621
- jasmine.StringPrettyPrinter.prototype.emitScalar = function(value) {
1622
- this.append(value);
1623
- };
1624
-
1625
- jasmine.StringPrettyPrinter.prototype.emitString = function(value) {
1626
- this.append("'" + value + "'");
1627
- };
1628
-
1629
- jasmine.StringPrettyPrinter.prototype.emitArray = function(array) {
1630
- this.append('[ ');
1631
- for (var i = 0; i < array.length; i++) {
1632
- if (i > 0) {
1633
- this.append(', ');
1634
- }
1635
- this.format(array[i]);
1636
- }
1637
- this.append(' ]');
1638
- };
1639
-
1640
- jasmine.StringPrettyPrinter.prototype.emitObject = function(obj) {
1641
- var self = this;
1642
- this.append('{ ');
1643
- var first = true;
1644
-
1645
- this.iterateObject(obj, function(property, isGetter) {
1646
- if (first) {
1647
- first = false;
1648
- } else {
1649
- self.append(', ');
1650
- }
1651
-
1652
- self.append(property);
1653
- self.append(' : ');
1654
- if (isGetter) {
1655
- self.append('<getter>');
1656
- } else {
1657
- self.format(obj[property]);
1658
- }
1659
- });
1660
-
1661
- this.append(' }');
1662
- };
1663
-
1664
- jasmine.StringPrettyPrinter.prototype.append = function(value) {
1665
- this.string += value;
1666
- };
1667
- jasmine.Queue = function(env) {
1668
- this.env = env;
1669
- this.blocks = [];
1670
- this.running = false;
1671
- this.index = 0;
1672
- this.offset = 0;
1673
- this.abort = false;
1674
- };
1675
-
1676
- jasmine.Queue.prototype.addBefore = function(block) {
1677
- this.blocks.unshift(block);
1678
- };
1679
-
1680
- jasmine.Queue.prototype.add = function(block) {
1681
- this.blocks.push(block);
1682
- };
1683
-
1684
- jasmine.Queue.prototype.insertNext = function(block) {
1685
- this.blocks.splice((this.index + this.offset + 1), 0, block);
1686
- this.offset++;
1687
- };
1688
-
1689
- jasmine.Queue.prototype.start = function(onComplete) {
1690
- this.running = true;
1691
- this.onComplete = onComplete;
1692
- this.next_();
1693
- };
1694
-
1695
- jasmine.Queue.prototype.isRunning = function() {
1696
- return this.running;
1697
- };
1698
-
1699
- jasmine.Queue.LOOP_DONT_RECURSE = true;
1700
-
1701
- jasmine.Queue.prototype.next_ = function() {
1702
- var self = this;
1703
- var goAgain = true;
1704
-
1705
- while (goAgain) {
1706
- goAgain = false;
1707
-
1708
- if (self.index < self.blocks.length && !this.abort) {
1709
- var calledSynchronously = true;
1710
- var completedSynchronously = false;
1711
-
1712
- var onComplete = function () {
1713
- if (jasmine.Queue.LOOP_DONT_RECURSE && calledSynchronously) {
1714
- completedSynchronously = true;
1715
- return;
1716
- }
1717
-
1718
- if (self.blocks[self.index].abort) {
1719
- self.abort = true;
1720
- }
1721
-
1722
- self.offset = 0;
1723
- self.index++;
1724
-
1725
- var now = new Date().getTime();
1726
- if (self.env.updateInterval && now - self.env.lastUpdate > self.env.updateInterval) {
1727
- self.env.lastUpdate = now;
1728
- self.env.setTimeout(function() {
1729
- self.next_();
1730
- }, 0);
1731
- } else {
1732
- if (jasmine.Queue.LOOP_DONT_RECURSE && completedSynchronously) {
1733
- goAgain = true;
1734
- } else {
1735
- self.next_();
1736
- }
1737
- }
1738
- };
1739
- self.blocks[self.index].execute(onComplete);
1740
-
1741
- calledSynchronously = false;
1742
- if (completedSynchronously) {
1743
- onComplete();
1744
- }
1745
-
1746
- } else {
1747
- self.running = false;
1748
- if (self.onComplete) {
1749
- self.onComplete();
1750
- }
1751
- }
1752
- }
1753
- };
1754
-
1755
- jasmine.Queue.prototype.results = function() {
1756
- var results = new jasmine.NestedResults();
1757
- for (var i = 0; i < this.blocks.length; i++) {
1758
- if (this.blocks[i].results) {
1759
- results.addResult(this.blocks[i].results());
1760
- }
1761
- }
1762
- return results;
1763
- };
1764
-
1765
-
1766
- /**
1767
- * Runner
1768
- *
1769
- * @constructor
1770
- * @param {jasmine.Env} env
1771
- */
1772
- jasmine.Runner = function(env) {
1773
- var self = this;
1774
- self.env = env;
1775
- self.queue = new jasmine.Queue(env);
1776
- self.before_ = [];
1777
- self.after_ = [];
1778
- self.suites_ = [];
1779
- };
1780
-
1781
- jasmine.Runner.prototype.execute = function() {
1782
- var self = this;
1783
- if (self.env.reporter.reportRunnerStarting) {
1784
- self.env.reporter.reportRunnerStarting(this);
1785
- }
1786
- self.queue.start(function () {
1787
- self.finishCallback();
1788
- });
1789
- };
1790
-
1791
- jasmine.Runner.prototype.beforeEach = function(beforeEachFunction) {
1792
- beforeEachFunction.typeName = 'beforeEach';
1793
- this.before_.splice(0,0,beforeEachFunction);
1794
- };
1795
-
1796
- jasmine.Runner.prototype.afterEach = function(afterEachFunction) {
1797
- afterEachFunction.typeName = 'afterEach';
1798
- this.after_.splice(0,0,afterEachFunction);
1799
- };
1800
-
1801
-
1802
- jasmine.Runner.prototype.finishCallback = function() {
1803
- this.env.reporter.reportRunnerResults(this);
1804
- };
1805
-
1806
- jasmine.Runner.prototype.addSuite = function(suite) {
1807
- this.suites_.push(suite);
1808
- };
1809
-
1810
- jasmine.Runner.prototype.add = function(block) {
1811
- if (block instanceof jasmine.Suite) {
1812
- this.addSuite(block);
1813
- }
1814
- this.queue.add(block);
1815
- };
1816
-
1817
- jasmine.Runner.prototype.specs = function () {
1818
- var suites = this.suites();
1819
- var specs = [];
1820
- for (var i = 0; i < suites.length; i++) {
1821
- specs = specs.concat(suites[i].specs());
1822
- }
1823
- return specs;
1824
- };
1825
-
1826
- jasmine.Runner.prototype.suites = function() {
1827
- return this.suites_;
1828
- };
1829
-
1830
- jasmine.Runner.prototype.topLevelSuites = function() {
1831
- var topLevelSuites = [];
1832
- for (var i = 0; i < this.suites_.length; i++) {
1833
- if (!this.suites_[i].parentSuite) {
1834
- topLevelSuites.push(this.suites_[i]);
1835
- }
1836
- }
1837
- return topLevelSuites;
1838
- };
1839
-
1840
- jasmine.Runner.prototype.results = function() {
1841
- return this.queue.results();
1842
- };
1843
- /**
1844
- * Internal representation of a Jasmine specification, or test.
1845
- *
1846
- * @constructor
1847
- * @param {jasmine.Env} env
1848
- * @param {jasmine.Suite} suite
1849
- * @param {String} description
1850
- */
1851
- jasmine.Spec = function(env, suite, description) {
1852
- if (!env) {
1853
- throw new Error('jasmine.Env() required');
1854
- }
1855
- if (!suite) {
1856
- throw new Error('jasmine.Suite() required');
1857
- }
1858
- var spec = this;
1859
- spec.id = env.nextSpecId ? env.nextSpecId() : null;
1860
- spec.env = env;
1861
- spec.suite = suite;
1862
- spec.description = description;
1863
- spec.queue = new jasmine.Queue(env);
1864
-
1865
- spec.afterCallbacks = [];
1866
- spec.spies_ = [];
1867
-
1868
- spec.results_ = new jasmine.NestedResults();
1869
- spec.results_.description = description;
1870
- spec.matchersClass = null;
1871
- };
1872
-
1873
- jasmine.Spec.prototype.getFullName = function() {
1874
- return this.suite.getFullName() + ' ' + this.description + '.';
1875
- };
1876
-
1877
-
1878
- jasmine.Spec.prototype.results = function() {
1879
- return this.results_;
1880
- };
1881
-
1882
- /**
1883
- * All parameters are pretty-printed and concatenated together, then written to the spec's output.
1884
- *
1885
- * Be careful not to leave calls to <code>jasmine.log</code> in production code.
1886
- */
1887
- jasmine.Spec.prototype.log = function() {
1888
- return this.results_.log(arguments);
1889
- };
1890
-
1891
- jasmine.Spec.prototype.runs = function (func) {
1892
- var block = new jasmine.Block(this.env, func, this);
1893
- this.addToQueue(block);
1894
- return this;
1895
- };
1896
-
1897
- jasmine.Spec.prototype.addToQueue = function (block) {
1898
- if (this.queue.isRunning()) {
1899
- this.queue.insertNext(block);
1900
- } else {
1901
- this.queue.add(block);
1902
- }
1903
- };
1904
-
1905
- /**
1906
- * @param {jasmine.ExpectationResult} result
1907
- */
1908
- jasmine.Spec.prototype.addMatcherResult = function(result) {
1909
- this.results_.addResult(result);
1910
- };
1911
-
1912
- jasmine.Spec.prototype.expect = function(actual) {
1913
- var positive = new (this.getMatchersClass_())(this.env, actual, this);
1914
- positive.not = new (this.getMatchersClass_())(this.env, actual, this, true);
1915
- return positive;
1916
- };
1917
-
1918
- /**
1919
- * Waits a fixed time period before moving to the next block.
1920
- *
1921
- * @deprecated Use waitsFor() instead
1922
- * @param {Number} timeout milliseconds to wait
1923
- */
1924
- jasmine.Spec.prototype.waits = function(timeout) {
1925
- var waitsFunc = new jasmine.WaitsBlock(this.env, timeout, this);
1926
- this.addToQueue(waitsFunc);
1927
- return this;
1928
- };
1929
-
1930
- /**
1931
- * Waits for the latchFunction to return true before proceeding to the next block.
1932
- *
1933
- * @param {Function} latchFunction
1934
- * @param {String} optional_timeoutMessage
1935
- * @param {Number} optional_timeout
1936
- */
1937
- jasmine.Spec.prototype.waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
1938
- var latchFunction_ = null;
1939
- var optional_timeoutMessage_ = null;
1940
- var optional_timeout_ = null;
1941
-
1942
- for (var i = 0; i < arguments.length; i++) {
1943
- var arg = arguments[i];
1944
- switch (typeof arg) {
1945
- case 'function':
1946
- latchFunction_ = arg;
1947
- break;
1948
- case 'string':
1949
- optional_timeoutMessage_ = arg;
1950
- break;
1951
- case 'number':
1952
- optional_timeout_ = arg;
1953
- break;
1954
- }
1955
- }
1956
-
1957
- var waitsForFunc = new jasmine.WaitsForBlock(this.env, optional_timeout_, latchFunction_, optional_timeoutMessage_, this);
1958
- this.addToQueue(waitsForFunc);
1959
- return this;
1960
- };
1961
-
1962
- jasmine.Spec.prototype.fail = function (e) {
1963
- var expectationResult = new jasmine.ExpectationResult({
1964
- passed: false,
1965
- message: e ? jasmine.util.formatException(e) : 'Exception'
1966
- });
1967
- this.results_.addResult(expectationResult);
1968
- };
1969
-
1970
- jasmine.Spec.prototype.getMatchersClass_ = function() {
1971
- return this.matchersClass || this.env.matchersClass;
1972
- };
1973
-
1974
- jasmine.Spec.prototype.addMatchers = function(matchersPrototype) {
1975
- var parent = this.getMatchersClass_();
1976
- var newMatchersClass = function() {
1977
- parent.apply(this, arguments);
1978
- };
1979
- jasmine.util.inherit(newMatchersClass, parent);
1980
- jasmine.Matchers.wrapInto_(matchersPrototype, newMatchersClass);
1981
- this.matchersClass = newMatchersClass;
1982
- };
1983
-
1984
- jasmine.Spec.prototype.finishCallback = function() {
1985
- this.env.reporter.reportSpecResults(this);
1986
- };
1987
-
1988
- jasmine.Spec.prototype.finish = function(onComplete) {
1989
- this.removeAllSpies();
1990
- this.finishCallback();
1991
- if (onComplete) {
1992
- onComplete();
1993
- }
1994
- };
1995
-
1996
- jasmine.Spec.prototype.after = function(doAfter) {
1997
- if (this.queue.isRunning()) {
1998
- this.queue.add(new jasmine.Block(this.env, doAfter, this));
1999
- } else {
2000
- this.afterCallbacks.unshift(doAfter);
2001
- }
2002
- };
2003
-
2004
- jasmine.Spec.prototype.execute = function(onComplete) {
2005
- var spec = this;
2006
- if (!spec.env.specFilter(spec)) {
2007
- spec.results_.skipped = true;
2008
- spec.finish(onComplete);
2009
- return;
2010
- }
2011
-
2012
- this.env.reporter.reportSpecStarting(this);
2013
-
2014
- spec.env.currentSpec = spec;
2015
-
2016
- spec.addBeforesAndAftersToQueue();
2017
-
2018
- spec.queue.start(function () {
2019
- spec.finish(onComplete);
2020
- });
2021
- };
2022
-
2023
- jasmine.Spec.prototype.addBeforesAndAftersToQueue = function() {
2024
- var runner = this.env.currentRunner();
2025
- var i;
2026
-
2027
- for (var suite = this.suite; suite; suite = suite.parentSuite) {
2028
- for (i = 0; i < suite.before_.length; i++) {
2029
- this.queue.addBefore(new jasmine.Block(this.env, suite.before_[i], this));
2030
- }
2031
- }
2032
- for (i = 0; i < runner.before_.length; i++) {
2033
- this.queue.addBefore(new jasmine.Block(this.env, runner.before_[i], this));
2034
- }
2035
- for (i = 0; i < this.afterCallbacks.length; i++) {
2036
- this.queue.add(new jasmine.Block(this.env, this.afterCallbacks[i], this));
2037
- }
2038
- for (suite = this.suite; suite; suite = suite.parentSuite) {
2039
- for (i = 0; i < suite.after_.length; i++) {
2040
- this.queue.add(new jasmine.Block(this.env, suite.after_[i], this));
2041
- }
2042
- }
2043
- for (i = 0; i < runner.after_.length; i++) {
2044
- this.queue.add(new jasmine.Block(this.env, runner.after_[i], this));
2045
- }
2046
- };
2047
-
2048
- jasmine.Spec.prototype.explodes = function() {
2049
- throw 'explodes function should not have been called';
2050
- };
2051
-
2052
- jasmine.Spec.prototype.spyOn = function(obj, methodName, ignoreMethodDoesntExist) {
2053
- if (obj == jasmine.undefined) {
2054
- throw "spyOn could not find an object to spy upon for " + methodName + "()";
2055
- }
2056
-
2057
- if (!ignoreMethodDoesntExist && obj[methodName] === jasmine.undefined) {
2058
- throw methodName + '() method does not exist';
2059
- }
2060
-
2061
- if (!ignoreMethodDoesntExist && obj[methodName] && obj[methodName].isSpy) {
2062
- throw new Error(methodName + ' has already been spied upon');
2063
- }
2064
-
2065
- var spyObj = jasmine.createSpy(methodName);
2066
-
2067
- this.spies_.push(spyObj);
2068
- spyObj.baseObj = obj;
2069
- spyObj.methodName = methodName;
2070
- spyObj.originalValue = obj[methodName];
2071
-
2072
- obj[methodName] = spyObj;
2073
-
2074
- return spyObj;
2075
- };
2076
-
2077
- jasmine.Spec.prototype.removeAllSpies = function() {
2078
- for (var i = 0; i < this.spies_.length; i++) {
2079
- var spy = this.spies_[i];
2080
- spy.baseObj[spy.methodName] = spy.originalValue;
2081
- }
2082
- this.spies_ = [];
2083
- };
2084
-
2085
- /**
2086
- * Internal representation of a Jasmine suite.
2087
- *
2088
- * @constructor
2089
- * @param {jasmine.Env} env
2090
- * @param {String} description
2091
- * @param {Function} specDefinitions
2092
- * @param {jasmine.Suite} parentSuite
2093
- */
2094
- jasmine.Suite = function(env, description, specDefinitions, parentSuite) {
2095
- var self = this;
2096
- self.id = env.nextSuiteId ? env.nextSuiteId() : null;
2097
- self.description = description;
2098
- self.queue = new jasmine.Queue(env);
2099
- self.parentSuite = parentSuite;
2100
- self.env = env;
2101
- self.before_ = [];
2102
- self.after_ = [];
2103
- self.children_ = [];
2104
- self.suites_ = [];
2105
- self.specs_ = [];
2106
- };
2107
-
2108
- jasmine.Suite.prototype.getFullName = function() {
2109
- var fullName = this.description;
2110
- for (var parentSuite = this.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) {
2111
- fullName = parentSuite.description + ' ' + fullName;
2112
- }
2113
- return fullName;
2114
- };
2115
-
2116
- jasmine.Suite.prototype.finish = function(onComplete) {
2117
- this.env.reporter.reportSuiteResults(this);
2118
- this.finished = true;
2119
- if (typeof(onComplete) == 'function') {
2120
- onComplete();
2121
- }
2122
- };
2123
-
2124
- jasmine.Suite.prototype.beforeEach = function(beforeEachFunction) {
2125
- beforeEachFunction.typeName = 'beforeEach';
2126
- this.before_.unshift(beforeEachFunction);
2127
- };
2128
-
2129
- jasmine.Suite.prototype.afterEach = function(afterEachFunction) {
2130
- afterEachFunction.typeName = 'afterEach';
2131
- this.after_.unshift(afterEachFunction);
2132
- };
2133
-
2134
- jasmine.Suite.prototype.results = function() {
2135
- return this.queue.results();
2136
- };
2137
-
2138
- jasmine.Suite.prototype.add = function(suiteOrSpec) {
2139
- this.children_.push(suiteOrSpec);
2140
- if (suiteOrSpec instanceof jasmine.Suite) {
2141
- this.suites_.push(suiteOrSpec);
2142
- this.env.currentRunner().addSuite(suiteOrSpec);
2143
- } else {
2144
- this.specs_.push(suiteOrSpec);
2145
- }
2146
- this.queue.add(suiteOrSpec);
2147
- };
2148
-
2149
- jasmine.Suite.prototype.specs = function() {
2150
- return this.specs_;
2151
- };
2152
-
2153
- jasmine.Suite.prototype.suites = function() {
2154
- return this.suites_;
2155
- };
2156
-
2157
- jasmine.Suite.prototype.children = function() {
2158
- return this.children_;
2159
- };
2160
-
2161
- jasmine.Suite.prototype.execute = function(onComplete) {
2162
- var self = this;
2163
- this.queue.start(function () {
2164
- self.finish(onComplete);
2165
- });
2166
- };
2167
- jasmine.WaitsBlock = function(env, timeout, spec) {
2168
- this.timeout = timeout;
2169
- jasmine.Block.call(this, env, null, spec);
2170
- };
2171
-
2172
- jasmine.util.inherit(jasmine.WaitsBlock, jasmine.Block);
2173
-
2174
- jasmine.WaitsBlock.prototype.execute = function (onComplete) {
2175
- this.env.reporter.log('>> Jasmine waiting for ' + this.timeout + ' ms...');
2176
- this.env.setTimeout(function () {
2177
- onComplete();
2178
- }, this.timeout);
2179
- };
2180
- /**
2181
- * A block which waits for some condition to become true, with timeout.
2182
- *
2183
- * @constructor
2184
- * @extends jasmine.Block
2185
- * @param {jasmine.Env} env The Jasmine environment.
2186
- * @param {Number} timeout The maximum time in milliseconds to wait for the condition to become true.
2187
- * @param {Function} latchFunction A function which returns true when the desired condition has been met.
2188
- * @param {String} message The message to display if the desired condition hasn't been met within the given time period.
2189
- * @param {jasmine.Spec} spec The Jasmine spec.
2190
- */
2191
- jasmine.WaitsForBlock = function(env, timeout, latchFunction, message, spec) {
2192
- this.timeout = timeout || env.defaultTimeoutInterval;
2193
- this.latchFunction = latchFunction;
2194
- this.message = message;
2195
- this.totalTimeSpentWaitingForLatch = 0;
2196
- jasmine.Block.call(this, env, null, spec);
2197
- };
2198
- jasmine.util.inherit(jasmine.WaitsForBlock, jasmine.Block);
2199
-
2200
- jasmine.WaitsForBlock.TIMEOUT_INCREMENT = 10;
2201
-
2202
- jasmine.WaitsForBlock.prototype.execute = function(onComplete) {
2203
- this.env.reporter.log('>> Jasmine waiting for ' + (this.message || 'something to happen'));
2204
- var latchFunctionResult;
2205
- try {
2206
- latchFunctionResult = this.latchFunction.apply(this.spec);
2207
- } catch (e) {
2208
- this.spec.fail(e);
2209
- onComplete();
2210
- return;
2211
- }
2212
-
2213
- if (latchFunctionResult) {
2214
- onComplete();
2215
- } else if (this.totalTimeSpentWaitingForLatch >= this.timeout) {
2216
- var message = 'timed out after ' + this.timeout + ' msec waiting for ' + (this.message || 'something to happen');
2217
- this.spec.fail({
2218
- name: 'timeout',
2219
- message: message
2220
- });
2221
-
2222
- this.abort = true;
2223
- onComplete();
2224
- } else {
2225
- this.totalTimeSpentWaitingForLatch += jasmine.WaitsForBlock.TIMEOUT_INCREMENT;
2226
- var self = this;
2227
- this.env.setTimeout(function() {
2228
- self.execute(onComplete);
2229
- }, jasmine.WaitsForBlock.TIMEOUT_INCREMENT);
2230
- }
2231
- };
2232
- // Mock setTimeout, clearTimeout
2233
- // Contributed by Pivotal Computer Systems, www.pivotalsf.com
2234
-
2235
- jasmine.FakeTimer = function() {
2236
- this.reset();
2237
-
2238
- var self = this;
2239
- self.setTimeout = function(funcToCall, millis) {
2240
- self.timeoutsMade++;
2241
- self.scheduleFunction(self.timeoutsMade, funcToCall, millis, false);
2242
- return self.timeoutsMade;
2243
- };
2244
-
2245
- self.setInterval = function(funcToCall, millis) {
2246
- self.timeoutsMade++;
2247
- self.scheduleFunction(self.timeoutsMade, funcToCall, millis, true);
2248
- return self.timeoutsMade;
2249
- };
2250
-
2251
- self.clearTimeout = function(timeoutKey) {
2252
- self.scheduledFunctions[timeoutKey] = jasmine.undefined;
2253
- };
2254
-
2255
- self.clearInterval = function(timeoutKey) {
2256
- self.scheduledFunctions[timeoutKey] = jasmine.undefined;
2257
- };
2258
-
2259
- };
2260
-
2261
- jasmine.FakeTimer.prototype.reset = function() {
2262
- this.timeoutsMade = 0;
2263
- this.scheduledFunctions = {};
2264
- this.nowMillis = 0;
2265
- };
2266
-
2267
- jasmine.FakeTimer.prototype.tick = function(millis) {
2268
- var oldMillis = this.nowMillis;
2269
- var newMillis = oldMillis + millis;
2270
- this.runFunctionsWithinRange(oldMillis, newMillis);
2271
- this.nowMillis = newMillis;
2272
- };
2273
-
2274
- jasmine.FakeTimer.prototype.runFunctionsWithinRange = function(oldMillis, nowMillis) {
2275
- var scheduledFunc;
2276
- var funcsToRun = [];
2277
- for (var timeoutKey in this.scheduledFunctions) {
2278
- scheduledFunc = this.scheduledFunctions[timeoutKey];
2279
- if (scheduledFunc != jasmine.undefined &&
2280
- scheduledFunc.runAtMillis >= oldMillis &&
2281
- scheduledFunc.runAtMillis <= nowMillis) {
2282
- funcsToRun.push(scheduledFunc);
2283
- this.scheduledFunctions[timeoutKey] = jasmine.undefined;
2284
- }
2285
- }
2286
-
2287
- if (funcsToRun.length > 0) {
2288
- funcsToRun.sort(function(a, b) {
2289
- return a.runAtMillis - b.runAtMillis;
2290
- });
2291
- for (var i = 0; i < funcsToRun.length; ++i) {
2292
- try {
2293
- var funcToRun = funcsToRun[i];
2294
- this.nowMillis = funcToRun.runAtMillis;
2295
- funcToRun.funcToCall();
2296
- if (funcToRun.recurring) {
2297
- this.scheduleFunction(funcToRun.timeoutKey,
2298
- funcToRun.funcToCall,
2299
- funcToRun.millis,
2300
- true);
2301
- }
2302
- } catch(e) {
2303
- }
2304
- }
2305
- this.runFunctionsWithinRange(oldMillis, nowMillis);
2306
- }
2307
- };
2308
-
2309
- jasmine.FakeTimer.prototype.scheduleFunction = function(timeoutKey, funcToCall, millis, recurring) {
2310
- this.scheduledFunctions[timeoutKey] = {
2311
- runAtMillis: this.nowMillis + millis,
2312
- funcToCall: funcToCall,
2313
- recurring: recurring,
2314
- timeoutKey: timeoutKey,
2315
- millis: millis
2316
- };
2317
- };
2318
-
2319
- /**
2320
- * @namespace
2321
- */
2322
- jasmine.Clock = {
2323
- defaultFakeTimer: new jasmine.FakeTimer(),
2324
-
2325
- reset: function() {
2326
- jasmine.Clock.assertInstalled();
2327
- jasmine.Clock.defaultFakeTimer.reset();
2328
- },
2329
-
2330
- tick: function(millis) {
2331
- jasmine.Clock.assertInstalled();
2332
- jasmine.Clock.defaultFakeTimer.tick(millis);
2333
- },
2334
-
2335
- runFunctionsWithinRange: function(oldMillis, nowMillis) {
2336
- jasmine.Clock.defaultFakeTimer.runFunctionsWithinRange(oldMillis, nowMillis);
2337
- },
2338
-
2339
- scheduleFunction: function(timeoutKey, funcToCall, millis, recurring) {
2340
- jasmine.Clock.defaultFakeTimer.scheduleFunction(timeoutKey, funcToCall, millis, recurring);
2341
- },
2342
-
2343
- useMock: function() {
2344
- if (!jasmine.Clock.isInstalled()) {
2345
- var spec = jasmine.getEnv().currentSpec;
2346
- spec.after(jasmine.Clock.uninstallMock);
2347
-
2348
- jasmine.Clock.installMock();
2349
- }
2350
- },
2351
-
2352
- installMock: function() {
2353
- jasmine.Clock.installed = jasmine.Clock.defaultFakeTimer;
2354
- },
2355
-
2356
- uninstallMock: function() {
2357
- jasmine.Clock.assertInstalled();
2358
- jasmine.Clock.installed = jasmine.Clock.real;
2359
- },
2360
-
2361
- real: {
2362
- setTimeout: jasmine.getGlobal().setTimeout,
2363
- clearTimeout: jasmine.getGlobal().clearTimeout,
2364
- setInterval: jasmine.getGlobal().setInterval,
2365
- clearInterval: jasmine.getGlobal().clearInterval
2366
- },
2367
-
2368
- assertInstalled: function() {
2369
- if (!jasmine.Clock.isInstalled()) {
2370
- throw new Error("Mock clock is not installed, use jasmine.Clock.useMock()");
2371
- }
2372
- },
2373
-
2374
- isInstalled: function() {
2375
- return jasmine.Clock.installed == jasmine.Clock.defaultFakeTimer;
2376
- },
2377
-
2378
- installed: null
2379
- };
2380
- jasmine.Clock.installed = jasmine.Clock.real;
2381
-
2382
- //else for IE support
2383
- jasmine.getGlobal().setTimeout = function(funcToCall, millis) {
2384
- if (jasmine.Clock.installed.setTimeout.apply) {
2385
- return jasmine.Clock.installed.setTimeout.apply(this, arguments);
2386
- } else {
2387
- return jasmine.Clock.installed.setTimeout(funcToCall, millis);
2388
- }
2389
- };
2390
-
2391
- jasmine.getGlobal().setInterval = function(funcToCall, millis) {
2392
- if (jasmine.Clock.installed.setInterval.apply) {
2393
- return jasmine.Clock.installed.setInterval.apply(this, arguments);
2394
- } else {
2395
- return jasmine.Clock.installed.setInterval(funcToCall, millis);
2396
- }
2397
- };
2398
-
2399
- jasmine.getGlobal().clearTimeout = function(timeoutKey) {
2400
- if (jasmine.Clock.installed.clearTimeout.apply) {
2401
- return jasmine.Clock.installed.clearTimeout.apply(this, arguments);
2402
- } else {
2403
- return jasmine.Clock.installed.clearTimeout(timeoutKey);
2404
- }
2405
- };
2406
-
2407
- jasmine.getGlobal().clearInterval = function(timeoutKey) {
2408
- if (jasmine.Clock.installed.clearTimeout.apply) {
2409
- return jasmine.Clock.installed.clearInterval.apply(this, arguments);
2410
- } else {
2411
- return jasmine.Clock.installed.clearInterval(timeoutKey);
2412
- }
2413
- };
2414
-
2415
-
2416
- jasmine.version_= {
2417
- "major": 1,
2418
- "minor": 0,
2419
- "build": 0,
2420
- "revision": 1284494074
2421
- };