extjs-rails 4.1.0.alpha1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +36 -0
  4. data/README.md +29 -0
  5. data/Rakefile +2 -0
  6. data/app/assets/javascripts/extjs-rails/extjs-rails.js +1 -0
  7. data/app/assets/javascripts/extjs-rails/index.js.erb +9 -0
  8. data/app/assets/javascripts/extjs-rails/sdk.jsb3 +2017 -0
  9. data/app/assets/javascripts/extjs-rails/src/AbstractComponent.js +3290 -0
  10. data/app/assets/javascripts/extjs-rails/src/AbstractManager.js +144 -0
  11. data/app/assets/javascripts/extjs-rails/src/AbstractPlugin.js +72 -0
  12. data/app/assets/javascripts/extjs-rails/src/Action.js +276 -0
  13. data/app/assets/javascripts/extjs-rails/src/Ajax.js +99 -0
  14. data/app/assets/javascripts/extjs-rails/src/Component.js +1344 -0
  15. data/app/assets/javascripts/extjs-rails/src/ComponentLoader.js +202 -0
  16. data/app/assets/javascripts/extjs-rails/src/ComponentManager.js +47 -0
  17. data/app/assets/javascripts/extjs-rails/src/ComponentQuery.js +521 -0
  18. data/app/assets/javascripts/extjs-rails/src/Editor.js +494 -0
  19. data/app/assets/javascripts/extjs-rails/src/ElementLoader.js +404 -0
  20. data/app/assets/javascripts/extjs-rails/src/FocusManager.js +712 -0
  21. data/app/assets/javascripts/extjs-rails/src/Img.js +111 -0
  22. data/app/assets/javascripts/extjs-rails/src/Layer.js +543 -0
  23. data/app/assets/javascripts/extjs-rails/src/LoadMask.js +432 -0
  24. data/app/assets/javascripts/extjs-rails/src/ModelManager.js +186 -0
  25. data/app/assets/javascripts/extjs-rails/src/PluginManager.js +110 -0
  26. data/app/assets/javascripts/extjs-rails/src/ProgressBar.js +336 -0
  27. data/app/assets/javascripts/extjs-rails/src/Shadow.js +233 -0
  28. data/app/assets/javascripts/extjs-rails/src/ShadowPool.js +43 -0
  29. data/app/assets/javascripts/extjs-rails/src/Template.js +331 -0
  30. data/app/assets/javascripts/extjs-rails/src/XTemplate.js +365 -0
  31. data/app/assets/javascripts/extjs-rails/src/XTemplateCompiler.js +450 -0
  32. data/app/assets/javascripts/extjs-rails/src/XTemplateParser.js +249 -0
  33. data/app/assets/javascripts/extjs-rails/src/ZIndexManager.js +519 -0
  34. data/app/assets/javascripts/extjs-rails/src/app/Application.js +271 -0
  35. data/app/assets/javascripts/extjs-rails/src/app/Controller.js +458 -0
  36. data/app/assets/javascripts/extjs-rails/src/app/EventBus.js +112 -0
  37. data/app/assets/javascripts/extjs-rails/src/button/Button.js +1483 -0
  38. data/app/assets/javascripts/extjs-rails/src/button/Cycle.js +215 -0
  39. data/app/assets/javascripts/extjs-rails/src/button/Split.js +99 -0
  40. data/app/assets/javascripts/extjs-rails/src/chart/Callout.js +140 -0
  41. data/app/assets/javascripts/extjs-rails/src/chart/Chart.js +966 -0
  42. data/app/assets/javascripts/extjs-rails/src/chart/Highlight.js +172 -0
  43. data/app/assets/javascripts/extjs-rails/src/chart/Label.js +241 -0
  44. data/app/assets/javascripts/extjs-rails/src/chart/Legend.js +474 -0
  45. data/app/assets/javascripts/extjs-rails/src/chart/LegendItem.js +217 -0
  46. data/app/assets/javascripts/extjs-rails/src/chart/Mask.js +230 -0
  47. data/app/assets/javascripts/extjs-rails/src/chart/MaskLayer.js +48 -0
  48. data/app/assets/javascripts/extjs-rails/src/chart/Navigation.js +79 -0
  49. data/app/assets/javascripts/extjs-rails/src/chart/Shape.js +106 -0
  50. data/app/assets/javascripts/extjs-rails/src/chart/Tip.js +98 -0
  51. data/app/assets/javascripts/extjs-rails/src/chart/TipSurface.js +42 -0
  52. data/app/assets/javascripts/extjs-rails/src/chart/axis/Abstract.js +73 -0
  53. data/app/assets/javascripts/extjs-rails/src/chart/axis/Axis.js +961 -0
  54. data/app/assets/javascripts/extjs-rails/src/chart/axis/Category.js +130 -0
  55. data/app/assets/javascripts/extjs-rails/src/chart/axis/Gauge.js +203 -0
  56. data/app/assets/javascripts/extjs-rails/src/chart/axis/Numeric.js +235 -0
  57. data/app/assets/javascripts/extjs-rails/src/chart/axis/Radial.js +204 -0
  58. data/app/assets/javascripts/extjs-rails/src/chart/axis/Time.js +135 -0
  59. data/app/assets/javascripts/extjs-rails/src/chart/series/Area.js +803 -0
  60. data/app/assets/javascripts/extjs-rails/src/chart/series/Bar.js +853 -0
  61. data/app/assets/javascripts/extjs-rails/src/chart/series/Cartesian.js +328 -0
  62. data/app/assets/javascripts/extjs-rails/src/chart/series/Column.js +104 -0
  63. data/app/assets/javascripts/extjs-rails/src/chart/series/Gauge.js +490 -0
  64. data/app/assets/javascripts/extjs-rails/src/chart/series/Line.js +1104 -0
  65. data/app/assets/javascripts/extjs-rails/src/chart/series/Pie.js +1072 -0
  66. data/app/assets/javascripts/extjs-rails/src/chart/series/Radar.js +440 -0
  67. data/app/assets/javascripts/extjs-rails/src/chart/series/Scatter.js +668 -0
  68. data/app/assets/javascripts/extjs-rails/src/chart/series/Series.js +443 -0
  69. data/app/assets/javascripts/extjs-rails/src/chart/theme/Base.js +175 -0
  70. data/app/assets/javascripts/extjs-rails/src/chart/theme/Theme.js +253 -0
  71. data/app/assets/javascripts/extjs-rails/src/container/AbstractContainer.js +1062 -0
  72. data/app/assets/javascripts/extjs-rails/src/container/ButtonGroup.js +143 -0
  73. data/app/assets/javascripts/extjs-rails/src/container/Container.js +212 -0
  74. data/app/assets/javascripts/extjs-rails/src/container/DockingContainer.js +265 -0
  75. data/app/assets/javascripts/extjs-rails/src/container/Viewport.js +184 -0
  76. data/app/assets/javascripts/extjs-rails/src/core/dom/Element.form.js +50 -0
  77. data/app/assets/javascripts/extjs-rails/src/core/dom/Element.static-more.js +159 -0
  78. data/app/assets/javascripts/extjs-rails/src/core/examples/index.html +321 -0
  79. data/app/assets/javascripts/extjs-rails/src/core/examples/index.js +6 -0
  80. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CTO.js +25 -0
  81. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CoolGuy.js +20 -0
  82. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Developer.js +43 -0
  83. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Gun.js +3 -0
  84. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/HumanResource.js +23 -0
  85. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Musician.js +20 -0
  86. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Person.js +50 -0
  87. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanComposeSongs.js +9 -0
  88. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanPlayGuitar.js +9 -0
  89. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanSing.js +18 -0
  90. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/A.js +3 -0
  91. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/B.js +3 -0
  92. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/C.js +3 -0
  93. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/D.js +3 -0
  94. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/E.js +3 -0
  95. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/A.js +3 -0
  96. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/B.js +4 -0
  97. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/C.js +3 -0
  98. data/app/assets/javascripts/extjs-rails/src/core/src/EventManager.js +1167 -0
  99. data/app/assets/javascripts/extjs-rails/src/core/src/EventObject.js +883 -0
  100. data/app/assets/javascripts/extjs-rails/src/core/src/Ext-more.js +1283 -0
  101. data/app/assets/javascripts/extjs-rails/src/core/src/Ext.js +736 -0
  102. data/app/assets/javascripts/extjs-rails/src/core/src/Support.js +662 -0
  103. data/app/assets/javascripts/extjs-rails/src/core/src/class/Base.js +1085 -0
  104. data/app/assets/javascripts/extjs-rails/src/core/src/class/Class.js +676 -0
  105. data/app/assets/javascripts/extjs-rails/src/core/src/class/ClassManager.js +1591 -0
  106. data/app/assets/javascripts/extjs-rails/src/core/src/class/Loader.js +1423 -0
  107. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.alignment.js +173 -0
  108. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.insertion.js +193 -0
  109. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.js +681 -0
  110. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.position.js +356 -0
  111. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.static.js +474 -0
  112. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.style.js +851 -0
  113. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.traversal.js +180 -0
  114. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractHelper.js +291 -0
  115. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractQuery.js +72 -0
  116. data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElement.js +75 -0
  117. data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElementLite.js +436 -0
  118. data/app/assets/javascripts/extjs-rails/src/core/src/dom/DomQuery-aria.js +1049 -0
  119. data/app/assets/javascripts/extjs-rails/src/core/src/env/Browser.js +186 -0
  120. data/app/assets/javascripts/extjs-rails/src/core/src/env/FeatureDetector.js +274 -0
  121. data/app/assets/javascripts/extjs-rails/src/core/src/env/OS.js +141 -0
  122. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Array.js +1205 -0
  123. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Date.js +1463 -0
  124. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Error.js +326 -0
  125. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Function.js +485 -0
  126. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Number.js +175 -0
  127. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Object.js +606 -0
  128. data/app/assets/javascripts/extjs-rails/src/core/src/lang/String.js +333 -0
  129. data/app/assets/javascripts/extjs-rails/src/core/src/misc/JSON.js +236 -0
  130. data/app/assets/javascripts/extjs-rails/src/core/src/perf/Accumulator.js +244 -0
  131. data/app/assets/javascripts/extjs-rails/src/core/src/perf/Monitor.js +197 -0
  132. data/app/assets/javascripts/extjs-rails/src/core/src/util/DelayedTask.js +71 -0
  133. data/app/assets/javascripts/extjs-rails/src/core/src/util/Event.js +215 -0
  134. data/app/assets/javascripts/extjs-rails/src/core/src/util/Format.js +551 -0
  135. data/app/assets/javascripts/extjs-rails/src/core/src/util/TaskManager.js +417 -0
  136. data/app/assets/javascripts/extjs-rails/src/core/src/version/Version.js +364 -0
  137. data/app/assets/javascripts/extjs-rails/src/core/test/unit/README.MD +91 -0
  138. data/app/assets/javascripts/extjs-rails/src/core/test/unit/bootstrap.js +39 -0
  139. data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build-data.js +34 -0
  140. data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build.sh +2 -0
  141. data/app/assets/javascripts/extjs-rails/src/core/test/unit/data.js +27 -0
  142. data/app/assets/javascripts/extjs-rails/src/core/test/unit/index.html +15 -0
  143. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom.html +40 -0
  144. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/extjs-api.js +12 -0
  145. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/platform-api.js +134 -0
  146. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/sanity.js +4 -0
  147. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api-out.js +128 -0
  148. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api.js +89 -0
  149. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/env/Environment.js +357 -0
  150. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/APITest.js +37 -0
  151. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/jsb3.js +14 -0
  152. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/test-setup.js +137 -0
  153. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/EventManager.js +629 -0
  154. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-mess.backup +198 -0
  155. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-more.js +520 -0
  156. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext.js +1550 -0
  157. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Support.js +250 -0
  158. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Base.js +47 -0
  159. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Class.js +561 -0
  160. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/ClassManager.js +555 -0
  161. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/CompositeElementLite.js +409 -0
  162. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/DomHelper.js +444 -0
  163. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.insertion.js +342 -0
  164. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.js +731 -0
  165. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.static.js +201 -0
  166. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.style.js +118 -0
  167. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.traversal.js +336 -0
  168. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Array.js +1229 -0
  169. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Date.js +697 -0
  170. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Error.js +277 -0
  171. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Function.js +536 -0
  172. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Number.js +323 -0
  173. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Object.js +591 -0
  174. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/String.js +451 -0
  175. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/misc/JSON.js +252 -0
  176. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/util/Format.js +521 -0
  177. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/version/Version.js +148 -0
  178. data/app/assets/javascripts/extjs-rails/src/core/test/unit/specs.html +19 -0
  179. data/app/assets/javascripts/extjs-rails/src/data/AbstractStore.js +887 -0
  180. data/app/assets/javascripts/extjs-rails/src/data/ArrayStore.js +74 -0
  181. data/app/assets/javascripts/extjs-rails/src/data/Batch.js +236 -0
  182. data/app/assets/javascripts/extjs-rails/src/data/BufferStore.js +13 -0
  183. data/app/assets/javascripts/extjs-rails/src/data/Connection.js +969 -0
  184. data/app/assets/javascripts/extjs-rails/src/data/DirectStore.js +50 -0
  185. data/app/assets/javascripts/extjs-rails/src/data/Errors.js +52 -0
  186. data/app/assets/javascripts/extjs-rails/src/data/Field.js +341 -0
  187. data/app/assets/javascripts/extjs-rails/src/data/IdGenerator.js +198 -0
  188. data/app/assets/javascripts/extjs-rails/src/data/JsonP.js +253 -0
  189. data/app/assets/javascripts/extjs-rails/src/data/JsonPStore.js +51 -0
  190. data/app/assets/javascripts/extjs-rails/src/data/JsonStore.js +60 -0
  191. data/app/assets/javascripts/extjs-rails/src/data/Model.js +1673 -0
  192. data/app/assets/javascripts/extjs-rails/src/data/NodeInterface.js +1294 -0
  193. data/app/assets/javascripts/extjs-rails/src/data/NodeStore.js +254 -0
  194. data/app/assets/javascripts/extjs-rails/src/data/Operation.js +331 -0
  195. data/app/assets/javascripts/extjs-rails/src/data/Request.js +40 -0
  196. data/app/assets/javascripts/extjs-rails/src/data/ResultSet.js +56 -0
  197. data/app/assets/javascripts/extjs-rails/src/data/SequentialIdGenerator.js +61 -0
  198. data/app/assets/javascripts/extjs-rails/src/data/SortTypes.js +125 -0
  199. data/app/assets/javascripts/extjs-rails/src/data/Store.js +2609 -0
  200. data/app/assets/javascripts/extjs-rails/src/data/StoreManager.js +156 -0
  201. data/app/assets/javascripts/extjs-rails/src/data/Tree.js +290 -0
  202. data/app/assets/javascripts/extjs-rails/src/data/TreeStore.js +655 -0
  203. data/app/assets/javascripts/extjs-rails/src/data/Types.js +190 -0
  204. data/app/assets/javascripts/extjs-rails/src/data/UuidGenerator.js +215 -0
  205. data/app/assets/javascripts/extjs-rails/src/data/XmlStore.js +76 -0
  206. data/app/assets/javascripts/extjs-rails/src/data/association/Association.js +243 -0
  207. data/app/assets/javascripts/extjs-rails/src/data/association/BelongsTo.js +291 -0
  208. data/app/assets/javascripts/extjs-rails/src/data/association/HasMany.js +289 -0
  209. data/app/assets/javascripts/extjs-rails/src/data/association/HasOne.js +304 -0
  210. data/app/assets/javascripts/extjs-rails/src/data/proxy/Ajax.js +282 -0
  211. data/app/assets/javascripts/extjs-rails/src/data/proxy/Client.js +21 -0
  212. data/app/assets/javascripts/extjs-rails/src/data/proxy/Direct.js +181 -0
  213. data/app/assets/javascripts/extjs-rails/src/data/proxy/JsonP.js +313 -0
  214. data/app/assets/javascripts/extjs-rails/src/data/proxy/LocalStorage.js +69 -0
  215. data/app/assets/javascripts/extjs-rails/src/data/proxy/Memory.js +156 -0
  216. data/app/assets/javascripts/extjs-rails/src/data/proxy/Proxy.js +433 -0
  217. data/app/assets/javascripts/extjs-rails/src/data/proxy/Rest.js +173 -0
  218. data/app/assets/javascripts/extjs-rails/src/data/proxy/Server.js +460 -0
  219. data/app/assets/javascripts/extjs-rails/src/data/proxy/SessionStorage.js +39 -0
  220. data/app/assets/javascripts/extjs-rails/src/data/proxy/WebStorage.js +546 -0
  221. data/app/assets/javascripts/extjs-rails/src/data/reader/Array.js +68 -0
  222. data/app/assets/javascripts/extjs-rails/src/data/reader/Json.js +383 -0
  223. data/app/assets/javascripts/extjs-rails/src/data/reader/Reader.js +735 -0
  224. data/app/assets/javascripts/extjs-rails/src/data/reader/Xml.js +292 -0
  225. data/app/assets/javascripts/extjs-rails/src/data/validations.js +149 -0
  226. data/app/assets/javascripts/extjs-rails/src/data/writer/Json.js +81 -0
  227. data/app/assets/javascripts/extjs-rails/src/data/writer/Writer.js +147 -0
  228. data/app/assets/javascripts/extjs-rails/src/data/writer/Xml.js +88 -0
  229. data/app/assets/javascripts/extjs-rails/src/dd/DD.js +300 -0
  230. data/app/assets/javascripts/extjs-rails/src/dd/DDProxy.js +204 -0
  231. data/app/assets/javascripts/extjs-rails/src/dd/DDTarget.js +171 -0
  232. data/app/assets/javascripts/extjs-rails/src/dd/DragDrop.js +1101 -0
  233. data/app/assets/javascripts/extjs-rails/src/dd/DragDropManager.js +1264 -0
  234. data/app/assets/javascripts/extjs-rails/src/dd/DragSource.js +392 -0
  235. data/app/assets/javascripts/extjs-rails/src/dd/DragTracker.js +562 -0
  236. data/app/assets/javascripts/extjs-rails/src/dd/DragZone.js +137 -0
  237. data/app/assets/javascripts/extjs-rails/src/dd/DropTarget.js +118 -0
  238. data/app/assets/javascripts/extjs-rails/src/dd/DropZone.js +254 -0
  239. data/app/assets/javascripts/extjs-rails/src/dd/Registry.js +117 -0
  240. data/app/assets/javascripts/extjs-rails/src/dd/ScrollManager.js +218 -0
  241. data/app/assets/javascripts/extjs-rails/src/dd/StatusProxy.js +179 -0
  242. data/app/assets/javascripts/extjs-rails/src/diag/layout/Context.js +523 -0
  243. data/app/assets/javascripts/extjs-rails/src/diag/layout/ContextItem.js +179 -0
  244. data/app/assets/javascripts/extjs-rails/src/direct/Event.js +35 -0
  245. data/app/assets/javascripts/extjs-rails/src/direct/ExceptionEvent.js +16 -0
  246. data/app/assets/javascripts/extjs-rails/src/direct/JsonProvider.js +82 -0
  247. data/app/assets/javascripts/extjs-rails/src/direct/Manager.js +263 -0
  248. data/app/assets/javascripts/extjs-rails/src/direct/PollingProvider.js +156 -0
  249. data/app/assets/javascripts/extjs-rails/src/direct/Provider.js +96 -0
  250. data/app/assets/javascripts/extjs-rails/src/direct/RemotingEvent.js +24 -0
  251. data/app/assets/javascripts/extjs-rails/src/direct/RemotingMethod.js +100 -0
  252. data/app/assets/javascripts/extjs-rails/src/direct/RemotingProvider.js +510 -0
  253. data/app/assets/javascripts/extjs-rails/src/direct/Transaction.js +41 -0
  254. data/app/assets/javascripts/extjs-rails/src/dom/Element.alignment.js +378 -0
  255. data/app/assets/javascripts/extjs-rails/src/dom/Element.anim.js +962 -0
  256. data/app/assets/javascripts/extjs-rails/src/dom/Element.dd.js +40 -0
  257. data/app/assets/javascripts/extjs-rails/src/dom/Element.fx.js +194 -0
  258. data/app/assets/javascripts/extjs-rails/src/dom/Element.js +1407 -0
  259. data/app/assets/javascripts/extjs-rails/src/dom/Element.position.js +501 -0
  260. data/app/assets/javascripts/extjs-rails/src/dom/Element.scroll.js +214 -0
  261. data/app/assets/javascripts/extjs-rails/src/dom/Element.style.js +792 -0
  262. data/app/assets/javascripts/extjs-rails/src/dom/Element.traversal.js +8 -0
  263. data/app/assets/javascripts/extjs-rails/src/dom/Helper.js +466 -0
  264. data/app/assets/javascripts/extjs-rails/src/dom/Query.js +1067 -0
  265. data/app/assets/javascripts/extjs-rails/src/draw/Color.js +303 -0
  266. data/app/assets/javascripts/extjs-rails/src/draw/Component.js +245 -0
  267. data/app/assets/javascripts/extjs-rails/src/draw/CompositeSprite.js +299 -0
  268. data/app/assets/javascripts/extjs-rails/src/draw/Draw.js +1217 -0
  269. data/app/assets/javascripts/extjs-rails/src/draw/Matrix.js +183 -0
  270. data/app/assets/javascripts/extjs-rails/src/draw/Sprite.js +554 -0
  271. data/app/assets/javascripts/extjs-rails/src/draw/SpriteDD.js +87 -0
  272. data/app/assets/javascripts/extjs-rails/src/draw/Surface.js +1001 -0
  273. data/app/assets/javascripts/extjs-rails/src/draw/Text.js +175 -0
  274. data/app/assets/javascripts/extjs-rails/src/draw/engine/ImageExporter.js +106 -0
  275. data/app/assets/javascripts/extjs-rails/src/draw/engine/Svg.js +734 -0
  276. data/app/assets/javascripts/extjs-rails/src/draw/engine/SvgExporter.js +280 -0
  277. data/app/assets/javascripts/extjs-rails/src/draw/engine/Vml.js +916 -0
  278. data/app/assets/javascripts/extjs-rails/src/flash/Component.js +248 -0
  279. data/app/assets/javascripts/extjs-rails/src/form/Basic.js +1018 -0
  280. data/app/assets/javascripts/extjs-rails/src/form/CheckboxGroup.js +441 -0
  281. data/app/assets/javascripts/extjs-rails/src/form/CheckboxManager.js +26 -0
  282. data/app/assets/javascripts/extjs-rails/src/form/FieldAncestor.js +210 -0
  283. data/app/assets/javascripts/extjs-rails/src/form/FieldContainer.js +290 -0
  284. data/app/assets/javascripts/extjs-rails/src/form/FieldSet.js +506 -0
  285. data/app/assets/javascripts/extjs-rails/src/form/Label.js +110 -0
  286. data/app/assets/javascripts/extjs-rails/src/form/Labelable.js +764 -0
  287. data/app/assets/javascripts/extjs-rails/src/form/Panel.js +335 -0
  288. data/app/assets/javascripts/extjs-rails/src/form/RadioGroup.js +124 -0
  289. data/app/assets/javascripts/extjs-rails/src/form/RadioManager.js +26 -0
  290. data/app/assets/javascripts/extjs-rails/src/form/action/Action.js +307 -0
  291. data/app/assets/javascripts/extjs-rails/src/form/action/DirectLoad.js +107 -0
  292. data/app/assets/javascripts/extjs-rails/src/form/action/DirectSubmit.js +119 -0
  293. data/app/assets/javascripts/extjs-rails/src/form/action/Load.js +120 -0
  294. data/app/assets/javascripts/extjs-rails/src/form/action/StandardSubmit.js +34 -0
  295. data/app/assets/javascripts/extjs-rails/src/form/action/Submit.js +257 -0
  296. data/app/assets/javascripts/extjs-rails/src/form/field/Base.js +813 -0
  297. data/app/assets/javascripts/extjs-rails/src/form/field/Checkbox.js +505 -0
  298. data/app/assets/javascripts/extjs-rails/src/form/field/ComboBox.js +1427 -0
  299. data/app/assets/javascripts/extjs-rails/src/form/field/Date.js +578 -0
  300. data/app/assets/javascripts/extjs-rails/src/form/field/Display.js +155 -0
  301. data/app/assets/javascripts/extjs-rails/src/form/field/Field.js +430 -0
  302. data/app/assets/javascripts/extjs-rails/src/form/field/File.js +265 -0
  303. data/app/assets/javascripts/extjs-rails/src/form/field/Hidden.js +75 -0
  304. data/app/assets/javascripts/extjs-rails/src/form/field/HtmlEditor.js +1439 -0
  305. data/app/assets/javascripts/extjs-rails/src/form/field/Number.js +380 -0
  306. data/app/assets/javascripts/extjs-rails/src/form/field/Picker.js +321 -0
  307. data/app/assets/javascripts/extjs-rails/src/form/field/Radio.js +279 -0
  308. data/app/assets/javascripts/extjs-rails/src/form/field/Spinner.js +321 -0
  309. data/app/assets/javascripts/extjs-rails/src/form/field/Text.js +727 -0
  310. data/app/assets/javascripts/extjs-rails/src/form/field/TextArea.js +228 -0
  311. data/app/assets/javascripts/extjs-rails/src/form/field/Time.js +459 -0
  312. data/app/assets/javascripts/extjs-rails/src/form/field/Trigger.js +469 -0
  313. data/app/assets/javascripts/extjs-rails/src/form/field/VTypes.js +172 -0
  314. data/app/assets/javascripts/extjs-rails/src/fx/Anim.js +472 -0
  315. data/app/assets/javascripts/extjs-rails/src/fx/Animator.js +410 -0
  316. data/app/assets/javascripts/extjs-rails/src/fx/CubicBezier.js +77 -0
  317. data/app/assets/javascripts/extjs-rails/src/fx/Easing.js +136 -0
  318. data/app/assets/javascripts/extjs-rails/src/fx/Manager.js +353 -0
  319. data/app/assets/javascripts/extjs-rails/src/fx/PropertyHandler.js +381 -0
  320. data/app/assets/javascripts/extjs-rails/src/fx/Queue.js +123 -0
  321. data/app/assets/javascripts/extjs-rails/src/fx/target/Component.js +118 -0
  322. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElement.js +46 -0
  323. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElementCSS.js +22 -0
  324. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeSprite.js +34 -0
  325. data/app/assets/javascripts/extjs-rails/src/fx/target/Element.js +83 -0
  326. data/app/assets/javascripts/extjs-rails/src/fx/target/ElementCSS.js +77 -0
  327. data/app/assets/javascripts/extjs-rails/src/fx/target/Sprite.js +128 -0
  328. data/app/assets/javascripts/extjs-rails/src/fx/target/Target.js +36 -0
  329. data/app/assets/javascripts/extjs-rails/src/grid/CellEditor.js +172 -0
  330. data/app/assets/javascripts/extjs-rails/src/grid/ColumnComponentLayout.js +34 -0
  331. data/app/assets/javascripts/extjs-rails/src/grid/ColumnLayout.js +201 -0
  332. data/app/assets/javascripts/extjs-rails/src/grid/Lockable.js +863 -0
  333. data/app/assets/javascripts/extjs-rails/src/grid/LockingView.js +169 -0
  334. data/app/assets/javascripts/extjs-rails/src/grid/PagingScroller.js +539 -0
  335. data/app/assets/javascripts/extjs-rails/src/grid/Panel.js +393 -0
  336. data/app/assets/javascripts/extjs-rails/src/grid/RowEditor.js +731 -0
  337. data/app/assets/javascripts/extjs-rails/src/grid/RowNumberer.js +76 -0
  338. data/app/assets/javascripts/extjs-rails/src/grid/Scroller.js +5 -0
  339. data/app/assets/javascripts/extjs-rails/src/grid/View.js +44 -0
  340. data/app/assets/javascripts/extjs-rails/src/grid/ViewDropZone.js +41 -0
  341. data/app/assets/javascripts/extjs-rails/src/grid/column/Action.js +318 -0
  342. data/app/assets/javascripts/extjs-rails/src/grid/column/Boolean.js +82 -0
  343. data/app/assets/javascripts/extjs-rails/src/grid/column/Column.js +835 -0
  344. data/app/assets/javascripts/extjs-rails/src/grid/column/Date.js +63 -0
  345. data/app/assets/javascripts/extjs-rails/src/grid/column/Number.js +52 -0
  346. data/app/assets/javascripts/extjs-rails/src/grid/column/Template.js +58 -0
  347. data/app/assets/javascripts/extjs-rails/src/grid/feature/AbstractSummary.js +154 -0
  348. data/app/assets/javascripts/extjs-rails/src/grid/feature/Chunking.js +77 -0
  349. data/app/assets/javascripts/extjs-rails/src/grid/feature/Feature.js +158 -0
  350. data/app/assets/javascripts/extjs-rails/src/grid/feature/Grouping.js +822 -0
  351. data/app/assets/javascripts/extjs-rails/src/grid/feature/GroupingSummary.js +243 -0
  352. data/app/assets/javascripts/extjs-rails/src/grid/feature/RowBody.js +116 -0
  353. data/app/assets/javascripts/extjs-rails/src/grid/feature/RowWrap.js +120 -0
  354. data/app/assets/javascripts/extjs-rails/src/grid/feature/Summary.js +167 -0
  355. data/app/assets/javascripts/extjs-rails/src/grid/header/Container.js +965 -0
  356. data/app/assets/javascripts/extjs-rails/src/grid/header/DragZone.js +69 -0
  357. data/app/assets/javascripts/extjs-rails/src/grid/header/DropZone.js +265 -0
  358. data/app/assets/javascripts/extjs-rails/src/grid/plugin/CellEditing.js +453 -0
  359. data/app/assets/javascripts/extjs-rails/src/grid/plugin/DragDrop.js +254 -0
  360. data/app/assets/javascripts/extjs-rails/src/grid/plugin/Editing.js +561 -0
  361. data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderReorderer.js +49 -0
  362. data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderResizer.js +292 -0
  363. data/app/assets/javascripts/extjs-rails/src/grid/plugin/RowEditing.js +339 -0
  364. data/app/assets/javascripts/extjs-rails/src/grid/property/Grid.js +351 -0
  365. data/app/assets/javascripts/extjs-rails/src/grid/property/HeaderContainer.js +109 -0
  366. data/app/assets/javascripts/extjs-rails/src/grid/property/Property.js +36 -0
  367. data/app/assets/javascripts/extjs-rails/src/grid/property/Store.js +141 -0
  368. data/app/assets/javascripts/extjs-rails/src/layout/ClassList.js +90 -0
  369. data/app/assets/javascripts/extjs-rails/src/layout/Context.js +1232 -0
  370. data/app/assets/javascripts/extjs-rails/src/layout/ContextItem.js +1470 -0
  371. data/app/assets/javascripts/extjs-rails/src/layout/Layout.js +761 -0
  372. data/app/assets/javascripts/extjs-rails/src/layout/component/Auto.js +220 -0
  373. data/app/assets/javascripts/extjs-rails/src/layout/component/Body.js +80 -0
  374. data/app/assets/javascripts/extjs-rails/src/layout/component/BoundList.js +95 -0
  375. data/app/assets/javascripts/extjs-rails/src/layout/component/Button.js +261 -0
  376. data/app/assets/javascripts/extjs-rails/src/layout/component/Component.js +427 -0
  377. data/app/assets/javascripts/extjs-rails/src/layout/component/Dock.js +1132 -0
  378. data/app/assets/javascripts/extjs-rails/src/layout/component/Draw.js +79 -0
  379. data/app/assets/javascripts/extjs-rails/src/layout/component/FieldSet.js +62 -0
  380. data/app/assets/javascripts/extjs-rails/src/layout/component/ProgressBar.js +54 -0
  381. data/app/assets/javascripts/extjs-rails/src/layout/component/Tab.js +23 -0
  382. data/app/assets/javascripts/extjs-rails/src/layout/component/field/ComboBox.js +52 -0
  383. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Field.js +372 -0
  384. data/app/assets/javascripts/extjs-rails/src/layout/component/field/FieldContainer.js +48 -0
  385. data/app/assets/javascripts/extjs-rails/src/layout/component/field/HtmlEditor.js +54 -0
  386. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Slider.js +58 -0
  387. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Text.js +75 -0
  388. data/app/assets/javascripts/extjs-rails/src/layout/component/field/TextArea.js +51 -0
  389. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Trigger.js +132 -0
  390. data/app/assets/javascripts/extjs-rails/src/layout/container/Absolute.js +121 -0
  391. data/app/assets/javascripts/extjs-rails/src/layout/container/Accordion.js +308 -0
  392. data/app/assets/javascripts/extjs-rails/src/layout/container/Anchor.js +403 -0
  393. data/app/assets/javascripts/extjs-rails/src/layout/container/Auto.js +70 -0
  394. data/app/assets/javascripts/extjs-rails/src/layout/container/Border-old-js +1079 -0
  395. data/app/assets/javascripts/extjs-rails/src/layout/container/Border.js +816 -0
  396. data/app/assets/javascripts/extjs-rails/src/layout/container/Box.js +929 -0
  397. data/app/assets/javascripts/extjs-rails/src/layout/container/Card.js +361 -0
  398. data/app/assets/javascripts/extjs-rails/src/layout/container/CheckboxGroup.js +376 -0
  399. data/app/assets/javascripts/extjs-rails/src/layout/container/Column.js +234 -0
  400. data/app/assets/javascripts/extjs-rails/src/layout/container/Container.js +961 -0
  401. data/app/assets/javascripts/extjs-rails/src/layout/container/Editor.js +74 -0
  402. data/app/assets/javascripts/extjs-rails/src/layout/container/Fit.js +287 -0
  403. data/app/assets/javascripts/extjs-rails/src/layout/container/Form.js +157 -0
  404. data/app/assets/javascripts/extjs-rails/src/layout/container/HBox.js +134 -0
  405. data/app/assets/javascripts/extjs-rails/src/layout/container/Table.js +412 -0
  406. data/app/assets/javascripts/extjs-rails/src/layout/container/VBox.js +139 -0
  407. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Menu.js +365 -0
  408. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/None.js +83 -0
  409. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Scroller.js +475 -0
  410. data/app/assets/javascripts/extjs-rails/src/menu/CheckItem.js +169 -0
  411. data/app/assets/javascripts/extjs-rails/src/menu/ColorPicker.js +110 -0
  412. data/app/assets/javascripts/extjs-rails/src/menu/DatePicker.js +100 -0
  413. data/app/assets/javascripts/extjs-rails/src/menu/Item.js +553 -0
  414. data/app/assets/javascripts/extjs-rails/src/menu/KeyNav.js +134 -0
  415. data/app/assets/javascripts/extjs-rails/src/menu/Manager.js +219 -0
  416. data/app/assets/javascripts/extjs-rails/src/menu/Menu.js +579 -0
  417. data/app/assets/javascripts/extjs-rails/src/menu/Separator.js +126 -0
  418. data/app/assets/javascripts/extjs-rails/src/panel/AbstractPanel.js +323 -0
  419. data/app/assets/javascripts/extjs-rails/src/panel/DD.js +99 -0
  420. data/app/assets/javascripts/extjs-rails/src/panel/Header.js +518 -0
  421. data/app/assets/javascripts/extjs-rails/src/panel/Panel.js +2150 -0
  422. data/app/assets/javascripts/extjs-rails/src/panel/Proxy.js +131 -0
  423. data/app/assets/javascripts/extjs-rails/src/panel/Table.js +1018 -0
  424. data/app/assets/javascripts/extjs-rails/src/panel/Tool.js +304 -0
  425. data/app/assets/javascripts/extjs-rails/src/picker/Color.js +219 -0
  426. data/app/assets/javascripts/extjs-rails/src/picker/Date.js +1140 -0
  427. data/app/assets/javascripts/extjs-rails/src/picker/Month.js +490 -0
  428. data/app/assets/javascripts/extjs-rails/src/picker/Time.js +165 -0
  429. data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitter.js +22 -0
  430. data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitterTracker.js +210 -0
  431. data/app/assets/javascripts/extjs-rails/src/resizer/Handle.js +29 -0
  432. data/app/assets/javascripts/extjs-rails/src/resizer/ResizeTracker.js +346 -0
  433. data/app/assets/javascripts/extjs-rails/src/resizer/Resizer.js +477 -0
  434. data/app/assets/javascripts/extjs-rails/src/resizer/Splitter.js +242 -0
  435. data/app/assets/javascripts/extjs-rails/src/resizer/SplitterTracker.js +230 -0
  436. data/app/assets/javascripts/extjs-rails/src/selection/CellModel.js +395 -0
  437. data/app/assets/javascripts/extjs-rails/src/selection/CheckboxModel.js +234 -0
  438. data/app/assets/javascripts/extjs-rails/src/selection/DataViewModel.js +160 -0
  439. data/app/assets/javascripts/extjs-rails/src/selection/Model.js +646 -0
  440. data/app/assets/javascripts/extjs-rails/src/selection/RowModel.js +499 -0
  441. data/app/assets/javascripts/extjs-rails/src/selection/TreeModel.js +78 -0
  442. data/app/assets/javascripts/extjs-rails/src/slider/Multi.js +835 -0
  443. data/app/assets/javascripts/extjs-rails/src/slider/Single.js +56 -0
  444. data/app/assets/javascripts/extjs-rails/src/slider/Thumb.js +259 -0
  445. data/app/assets/javascripts/extjs-rails/src/slider/Tip.js +130 -0
  446. data/app/assets/javascripts/extjs-rails/src/state/CookieProvider.js +120 -0
  447. data/app/assets/javascripts/extjs-rails/src/state/LocalStorageProvider.js +72 -0
  448. data/app/assets/javascripts/extjs-rails/src/state/Manager.js +70 -0
  449. data/app/assets/javascripts/extjs-rails/src/state/Provider.js +182 -0
  450. data/app/assets/javascripts/extjs-rails/src/state/Stateful.js +364 -0
  451. data/app/assets/javascripts/extjs-rails/src/tab/Bar.js +258 -0
  452. data/app/assets/javascripts/extjs-rails/src/tab/Panel.js +654 -0
  453. data/app/assets/javascripts/extjs-rails/src/tab/Tab.js +358 -0
  454. data/app/assets/javascripts/extjs-rails/src/tail.js +10 -0
  455. data/app/assets/javascripts/extjs-rails/src/tip/QuickTip.js +335 -0
  456. data/app/assets/javascripts/extjs-rails/src/tip/QuickTipManager.js +239 -0
  457. data/app/assets/javascripts/extjs-rails/src/tip/Tip.js +160 -0
  458. data/app/assets/javascripts/extjs-rails/src/tip/ToolTip.js +691 -0
  459. data/app/assets/javascripts/extjs-rails/src/toolbar/Fill.js +28 -0
  460. data/app/assets/javascripts/extjs-rails/src/toolbar/Item.js +16 -0
  461. data/app/assets/javascripts/extjs-rails/src/toolbar/Paging.js +600 -0
  462. data/app/assets/javascripts/extjs-rails/src/toolbar/Separator.js +23 -0
  463. data/app/assets/javascripts/extjs-rails/src/toolbar/Spacer.js +33 -0
  464. data/app/assets/javascripts/extjs-rails/src/toolbar/TextItem.js +57 -0
  465. data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar-legacy.js +123 -0
  466. data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar.js +447 -0
  467. data/app/assets/javascripts/extjs-rails/src/tree/Column.js +90 -0
  468. data/app/assets/javascripts/extjs-rails/src/tree/Panel.js +505 -0
  469. data/app/assets/javascripts/extjs-rails/src/tree/View.js +658 -0
  470. data/app/assets/javascripts/extjs-rails/src/tree/ViewDragZone.js +49 -0
  471. data/app/assets/javascripts/extjs-rails/src/tree/ViewDropZone.js +287 -0
  472. data/app/assets/javascripts/extjs-rails/src/tree/plugin/TreeViewDragDrop.js +244 -0
  473. data/app/assets/javascripts/extjs-rails/src/util/AbstractMixedCollection.js +772 -0
  474. data/app/assets/javascripts/extjs-rails/src/util/Animate.js +426 -0
  475. data/app/assets/javascripts/extjs-rails/src/util/Bindable.js +102 -0
  476. data/app/assets/javascripts/extjs-rails/src/util/CSS.js +185 -0
  477. data/app/assets/javascripts/extjs-rails/src/util/ClickRepeater.js +238 -0
  478. data/app/assets/javascripts/extjs-rails/src/util/ComponentDragger.js +126 -0
  479. data/app/assets/javascripts/extjs-rails/src/util/Cookies.js +91 -0
  480. data/app/assets/javascripts/extjs-rails/src/util/ElementContainer.js +293 -0
  481. data/app/assets/javascripts/extjs-rails/src/util/Filter.js +159 -0
  482. data/app/assets/javascripts/extjs-rails/src/util/Floating.js +321 -0
  483. data/app/assets/javascripts/extjs-rails/src/util/Grouper.js +26 -0
  484. data/app/assets/javascripts/extjs-rails/src/util/HashMap.js +356 -0
  485. data/app/assets/javascripts/extjs-rails/src/util/History.js +285 -0
  486. data/app/assets/javascripts/extjs-rails/src/util/Inflector.js +297 -0
  487. data/app/assets/javascripts/extjs-rails/src/util/KeyMap.js +427 -0
  488. data/app/assets/javascripts/extjs-rails/src/util/KeyNav.js +239 -0
  489. data/app/assets/javascripts/extjs-rails/src/util/LruCache.js +257 -0
  490. data/app/assets/javascripts/extjs-rails/src/util/Memento.js +131 -0
  491. data/app/assets/javascripts/extjs-rails/src/util/MixedCollection.js +239 -0
  492. data/app/assets/javascripts/extjs-rails/src/util/Observable.js +1003 -0
  493. data/app/assets/javascripts/extjs-rails/src/util/Offset.js +60 -0
  494. data/app/assets/javascripts/extjs-rails/src/util/Point.js +93 -0
  495. data/app/assets/javascripts/extjs-rails/src/util/ProtoElement.js +205 -0
  496. data/app/assets/javascripts/extjs-rails/src/util/Queue.js +76 -0
  497. data/app/assets/javascripts/extjs-rails/src/util/Region.js +388 -0
  498. data/app/assets/javascripts/extjs-rails/src/util/Renderable.js +1079 -0
  499. data/app/assets/javascripts/extjs-rails/src/util/Sortable.js +248 -0
  500. data/app/assets/javascripts/extjs-rails/src/util/Sorter.js +179 -0
  501. data/app/assets/javascripts/extjs-rails/src/util/TextMetrics.js +148 -0
  502. data/app/assets/javascripts/extjs-rails/src/view/AbstractView.js +1103 -0
  503. data/app/assets/javascripts/extjs-rails/src/view/BoundList.js +207 -0
  504. data/app/assets/javascripts/extjs-rails/src/view/BoundListKeyNav.js +92 -0
  505. data/app/assets/javascripts/extjs-rails/src/view/DragZone.js +106 -0
  506. data/app/assets/javascripts/extjs-rails/src/view/DropZone.js +240 -0
  507. data/app/assets/javascripts/extjs-rails/src/view/Table.js +1229 -0
  508. data/app/assets/javascripts/extjs-rails/src/view/TableChunker.js +139 -0
  509. data/app/assets/javascripts/extjs-rails/src/view/View.js +636 -0
  510. data/app/assets/javascripts/extjs-rails/src/window/MessageBox.js +880 -0
  511. data/app/assets/javascripts/extjs-rails/src/window/Window-legacy.js +56 -0
  512. data/app/assets/javascripts/extjs-rails/src/window/Window.js +793 -0
  513. data/extjs-rails.gemspec +24 -0
  514. data/lib/extjs-rails.rb +7 -0
  515. data/lib/extjs-rails/engine.rb +7 -0
  516. data/lib/extjs-rails/version.rb +5 -0
  517. metadata +660 -0
@@ -0,0 +1,1550 @@
1
+ describe("Ext", function() {
2
+
3
+ describe("Ext.global", function() {
4
+ it("should return the global scope", function() {
5
+ expect(Ext.global).toBe((function(){ return this;}).call());
6
+ });
7
+ });
8
+
9
+ describe("Ext.apply", function() {
10
+ var origin, o;
11
+
12
+ beforeEach(function() {
13
+ origin = {
14
+ name: 'value',
15
+ something: 'cool',
16
+ items: [1,2,3],
17
+ method: function() {
18
+ this.myMethodCalled = true;
19
+ },
20
+ toString: function() {
21
+ this.myToStringCalled = true;
22
+ }
23
+ };
24
+ });
25
+
26
+ it("should copy normal properties", function() {
27
+ Ext.apply(origin, {
28
+ name: 'newName',
29
+ items: [4,5,6],
30
+ otherThing: 'not cool',
31
+ isCool: false
32
+ });
33
+
34
+ expect(origin.name).toEqual('newName');
35
+ expect(origin.items).toEqual([4,5,6]);
36
+ expect(origin.something).toEqual('cool');
37
+ expect(origin.otherThing).toEqual('not cool');
38
+ expect(origin.isCool).toEqual(false);
39
+ });
40
+
41
+ it("should copy functions", function() {
42
+ Ext.apply(origin, {
43
+ method: function() {
44
+ this.newMethodCalled = true;
45
+ }
46
+ });
47
+
48
+ origin.method();
49
+
50
+ expect(origin.myMethodCalled).not.toBeDefined();
51
+ expect(origin.newMethodCalled).toBeTruthy();
52
+ });
53
+
54
+ it("should copy non-enumerables", function() {
55
+ Ext.apply(origin, {
56
+ toString: function() {
57
+ this.newToStringCalled = true;
58
+ }
59
+ });
60
+
61
+ origin.toString();
62
+
63
+ expect(origin.myToStringCalled).not.toBeDefined();
64
+ expect(origin.newToStringCalled).toBeTruthy();
65
+ });
66
+
67
+ it("should apply properties and return an object", function() {
68
+ o = Ext.apply({}, {
69
+ foo: 1,
70
+ bar: 2
71
+ });
72
+
73
+ expect(o).toEqual({
74
+ foo: 1,
75
+ bar: 2
76
+ });
77
+ });
78
+
79
+ it("should change the reference of the object", function() {
80
+ o = {};
81
+ Ext.apply(o, {
82
+ opt1: 'x',
83
+ opt2: 'y'
84
+ });
85
+
86
+ expect(o).toEqual({
87
+ opt1: 'x',
88
+ opt2: 'y'
89
+ });
90
+ });
91
+
92
+ it("should overwrite properties", function() {
93
+ o = Ext.apply({
94
+ foo: 1,
95
+ baz: 4
96
+ }, {
97
+ foo: 2,
98
+ bar: 3
99
+ });
100
+
101
+ expect(o).toEqual({
102
+ foo: 2,
103
+ bar: 3,
104
+ baz: 4
105
+ });
106
+ });
107
+
108
+ it("should use default", function() {
109
+ o = {};
110
+
111
+ Ext.apply(o, {
112
+ foo: 'new',
113
+ exist: true
114
+ }, {
115
+ foo: 'old',
116
+ def: true
117
+ });
118
+
119
+ expect(o).toEqual({
120
+ foo: 'new',
121
+ def: true,
122
+ exist: true
123
+ });
124
+ });
125
+
126
+ it("should override all defaults", function() {
127
+ o = Ext.apply({}, {
128
+ foo: 'foo',
129
+ bar: 'bar'
130
+ }, {
131
+ foo: 'oldFoo',
132
+ bar: 'oldBar'
133
+ });
134
+
135
+ expect(o).toEqual( {
136
+ foo: 'foo',
137
+ bar: 'bar'
138
+ });
139
+ });
140
+
141
+ it("should return null if null is passed as first argument", function() {
142
+ expect(Ext.apply(null, {})).toBeNull();
143
+ });
144
+
145
+ it("should return the object if second argument is not defined", function() {
146
+ o = {
147
+ foo: 1
148
+ };
149
+ expect(Ext.apply(o)).toEqual(o);
150
+ });
151
+
152
+ it("should override valueOf", function() {
153
+ o = Ext.apply({}, {valueOf: 1});
154
+
155
+ expect(o.valueOf).toEqual(1);
156
+ });
157
+
158
+ it("should override toString", function() {
159
+ o = Ext.apply({}, {toString: 3});
160
+
161
+ expect(o.toString).toEqual(3);
162
+
163
+ });
164
+ });
165
+
166
+ describe("Ext.emptyFn", function() {
167
+ it("should return undefined without params", function() {
168
+ expect(Ext.emptyFn()).toBeUndefined();
169
+ });
170
+
171
+ it("should return undefined if you pass params", function() {
172
+ expect(Ext.emptyFn('aaaa', 'bbbbb')).toBeUndefined();
173
+ });
174
+ });
175
+
176
+ describe("Ext.iterate", function() {
177
+ var itFn;
178
+
179
+ beforeEach(function() {
180
+ itFn = jasmine.createSpy();
181
+ });
182
+
183
+ describe("iterate object", function() {
184
+ var o;
185
+
186
+ beforeEach(function() {
187
+ o = {
188
+ n1: 11,
189
+ n2: 13,
190
+ n3: 18
191
+ };
192
+ });
193
+
194
+ describe("if itFn does not return false", function() {
195
+ beforeEach(function() {
196
+ Ext.iterate(o, itFn);
197
+ });
198
+
199
+ it("should call the iterate function 3 times", function () {
200
+ expect(itFn.callCount).toEqual(3);
201
+ });
202
+
203
+ it("should call the iterate function with correct arguments", function () {
204
+ expect(itFn.calls[0].args).toEqual(["n1", 11, o]);
205
+ expect(itFn.calls[1].args).toEqual(["n2", 13, o]);
206
+ expect(itFn.calls[2].args).toEqual(["n3", 18, o]);
207
+ });
208
+ });
209
+
210
+ describe("if itFn return false", function() {
211
+ beforeEach(function() {
212
+ itFn.andReturn(false);
213
+ Ext.iterate(o, itFn);
214
+ });
215
+
216
+ it("should stop iteration if function return false", function() {
217
+ itFn.andReturn(false);
218
+
219
+ expect(itFn.calls.length).toEqual(1);
220
+ });
221
+ });
222
+ });
223
+
224
+ describe("do nothing on an empty object", function() {
225
+ var o;
226
+
227
+ beforeEach(function() {
228
+ o = {};
229
+ Ext.iterate(o, itFn);
230
+ });
231
+
232
+ it("should not call the iterate function", function () {
233
+ expect(itFn).not.toHaveBeenCalled();
234
+ });
235
+
236
+ });
237
+
238
+ describe("iterate array", function() {
239
+ var arr;
240
+
241
+ beforeEach(function() {
242
+ arr = [6, 7, 8, 9];
243
+ });
244
+
245
+ describe("if itFn does not return false", function() {
246
+ beforeEach(function() {
247
+ Ext.iterate(arr, itFn);
248
+ });
249
+
250
+ it("should call the iterate function 4 times", function () {
251
+ expect(itFn.callCount).toEqual(4);
252
+ });
253
+
254
+ it("should call the iterate function with correct arguments", function () {
255
+ expect(itFn.calls[0].args).toEqual([6, 0, arr]);
256
+ expect(itFn.calls[1].args).toEqual([7, 1, arr]);
257
+ expect(itFn.calls[2].args).toEqual([8, 2, arr]);
258
+ expect(itFn.calls[3].args).toEqual([9, 3, arr]);
259
+ });
260
+ });
261
+
262
+ describe("if itFn return false", function() {
263
+ beforeEach(function() {
264
+ itFn.andReturn(false);
265
+ Ext.iterate(arr, itFn);
266
+ });
267
+
268
+ it("should stop iteration if function return false", function() {
269
+ itFn.andReturn(false);
270
+
271
+ expect(itFn.calls.length).toEqual(1);
272
+ });
273
+ });
274
+ });
275
+
276
+ describe("do nothing on an empty array", function() {
277
+ var arr;
278
+
279
+ beforeEach(function() {
280
+ arr = [];
281
+ Ext.iterate(arr, itFn);
282
+ });
283
+
284
+ it("should not call the iterate function", function () {
285
+ expect(itFn).not.toHaveBeenCalled();
286
+ });
287
+
288
+ });
289
+ });
290
+
291
+ describe("Ext.applyIf", function(){
292
+ var o;
293
+
294
+ it("should apply properties and return an object with an empty destination object", function() {
295
+ o = Ext.applyIf({}, {
296
+ foo: 'foo',
297
+ bar: 'bar'
298
+ });
299
+
300
+ expect(o).toEqual( {
301
+ foo: 'foo',
302
+ bar: 'bar'
303
+ });
304
+ });
305
+
306
+ it("should not override default properties", function() {
307
+ o = Ext.applyIf({
308
+ foo: 'foo'
309
+ }, {
310
+ foo: 'oldFoo'
311
+ });
312
+
313
+ expect(o).toEqual({
314
+ foo: 'foo'
315
+ });
316
+ });
317
+
318
+ it("should not override default properties with mixing properties", function() {
319
+ o = Ext.applyIf({
320
+ foo: 1,
321
+ bar: 2
322
+ }, {
323
+ bar: 3,
324
+ baz: 4
325
+ });
326
+
327
+ expect(o).toEqual({
328
+ foo: 1,
329
+ bar: 2,
330
+ baz: 4
331
+ });
332
+ });
333
+
334
+ it("should change the reference of the object", function() {
335
+ o = {};
336
+ Ext.applyIf(o, {
337
+ foo: 2
338
+ }, {
339
+ foo: 1
340
+ });
341
+
342
+ expect(o).toEqual({
343
+ foo: 2
344
+ });
345
+ });
346
+
347
+ it("should return null if null is passed as first argument", function() {
348
+ expect(Ext.applyIf(null, {})).toBeNull();
349
+ });
350
+
351
+ it("should return the object if second argument is no defined", function() {
352
+ o = {
353
+ foo: 1
354
+ };
355
+
356
+ expect(Ext.applyIf(o)).toEqual(o);
357
+ });
358
+ });
359
+
360
+
361
+ describe("Ext.extend", function() {
362
+ var Dude, Awesome, david;
363
+
364
+ beforeEach(function() {
365
+ Dude = Ext.extend(Object, {
366
+ constructor: function(config){
367
+ Ext.apply(this, config);
368
+ this.isBadass = false;
369
+ }
370
+ });
371
+
372
+ Awesome = Ext.extend(Dude, {
373
+ constructor: function(){
374
+ Awesome.superclass.constructor.apply(this, arguments);
375
+ this.isBadass = true;
376
+ }
377
+ });
378
+
379
+ david = new Awesome({
380
+ davis: 'isAwesome'
381
+ });
382
+ });
383
+
384
+ it("should throw an error if superclass isn't defined", function() {
385
+ expect(function() {
386
+ Ext.extend(undefined, {});
387
+ }).toThrow("Attempting to extend from a class which has not been loaded on the page.");
388
+ });
389
+
390
+ it("should create a superclass that return the original classe", function() {
391
+ expect(david.superclass).toEqual(Dude.prototype);
392
+ });
393
+
394
+ it("should add override method", function() {
395
+ expect(typeof david.override === 'function').toBe(true);
396
+ });
397
+
398
+ it("should override redefined methods", function() {
399
+ expect(david.isBadass).toBe(true);
400
+ });
401
+
402
+ it("should keep new properties", function() {
403
+ expect(david.davis).toEqual('isAwesome');
404
+ });
405
+ });
406
+
407
+ describe("Ext.override", function(){
408
+ var Dude,
409
+ extApplySpy;
410
+
411
+ beforeEach(function(){
412
+ Dude = function(){}; // avoid to directly override Object class
413
+ extApplySpy = spyOn(Ext, "apply");
414
+ });
415
+
416
+ it("should apply override", function(){
417
+ var override = {foo: true};
418
+
419
+ Ext.override(Dude, override);
420
+
421
+ expect(extApplySpy).toHaveBeenCalledWith(Dude.prototype, override);
422
+ });
423
+ });
424
+
425
+ describe("Ext.valueFrom", function() {
426
+ var value, defaultValue;
427
+
428
+ describe("with allowBlank", function() {
429
+ describe("and an empty string", function() {
430
+ it("should return the value", function() {
431
+ expect(Ext.valueFrom('', 'aaa', true)).toBe('');
432
+ });
433
+ });
434
+
435
+ describe("and a string", function() {
436
+ it("should return the value", function() {
437
+ expect(Ext.valueFrom('bbb', 'aaa', true)).toBe('bbb');
438
+ });
439
+ });
440
+
441
+ describe("and an undefined value", function() {
442
+ it("should return the default value", function() {
443
+ expect(Ext.valueFrom(undefined, 'aaa', true)).toBe('aaa');
444
+ });
445
+ });
446
+
447
+ describe("and a null value", function() {
448
+ it("should return the default value", function() {
449
+ expect(Ext.valueFrom(null, 'aaa', true)).toBe('aaa');
450
+ });
451
+ });
452
+
453
+ describe("and a 0 value", function() {
454
+ it("should return the value", function() {
455
+ expect(Ext.valueFrom(0, 'aaa', true)).toBe(0);
456
+ });
457
+ });
458
+ });
459
+
460
+ describe("without allowBlank", function() {
461
+ describe("and an empty string", function() {
462
+ it("should return the default value", function() {
463
+ expect(Ext.valueFrom('', 'aaa')).toBe('aaa');
464
+ });
465
+ });
466
+
467
+ describe("and a string", function() {
468
+ it("should return the value", function() {
469
+ expect(Ext.valueFrom('bbb', 'aaa')).toBe('bbb');
470
+ });
471
+ });
472
+
473
+ describe("and an undefined value", function() {
474
+ it("should return the default value", function() {
475
+ expect(Ext.valueFrom(undefined, 'aaa')).toBe('aaa');
476
+ });
477
+ });
478
+
479
+ describe("and a null value", function() {
480
+ it("should return the default value", function() {
481
+ expect(Ext.valueFrom(null, 'aaa')).toBe('aaa');
482
+ });
483
+ });
484
+
485
+ describe("and a 0 value", function() {
486
+ it("should return the value", function() {
487
+ expect(Ext.valueFrom(0, 'aaa')).toBe(0);
488
+ });
489
+ });
490
+ });
491
+ });
492
+
493
+ describe("Ext.typeOf", function() {
494
+
495
+ it("should return null", function() {
496
+ expect(Ext.typeOf(null)).toEqual('null');
497
+ });
498
+
499
+ it("should return undefined", function() {
500
+ expect(Ext.typeOf(undefined)).toEqual('undefined');
501
+ expect(Ext.typeOf(window.someWeirdPropertyThatDoesntExist)).toEqual('undefined');
502
+ });
503
+
504
+
505
+ it("should return string", function() {
506
+ expect(Ext.typeOf('')).toEqual('string');
507
+ expect(Ext.typeOf('something')).toEqual('string');
508
+ expect(Ext.typeOf('1.2')).toEqual('string');
509
+ });
510
+
511
+ it("should return number", function() {
512
+ expect(Ext.typeOf(1)).toEqual('number');
513
+ expect(Ext.typeOf(1.2)).toEqual('number');
514
+ expect(Ext.typeOf(new Number(1.2))).toEqual('number');
515
+ });
516
+
517
+
518
+ it("should return boolean", function() {
519
+ expect(Ext.typeOf(true)).toEqual('boolean');
520
+ expect(Ext.typeOf(false)).toEqual('boolean');
521
+ expect(Ext.typeOf(new Boolean(true))).toEqual('boolean');
522
+ });
523
+
524
+
525
+ it("should return array", function() {
526
+ expect(Ext.typeOf([1,2,3])).toEqual('array');
527
+ expect(Ext.typeOf(new Array(1,2,3))).toEqual('array');
528
+ });
529
+
530
+ it("should return function", function() {
531
+ expect(Ext.typeOf(function(){})).toEqual('function');
532
+ expect(Ext.typeOf(new Function())).toEqual('function');
533
+ expect(Ext.typeOf(Object)).toEqual('function');
534
+ expect(Ext.typeOf(Array)).toEqual('function');
535
+ expect(Ext.typeOf(Number)).toEqual('function');
536
+ expect(Ext.typeOf(Function)).toEqual('function');
537
+ expect(Ext.typeOf(Boolean)).toEqual('function');
538
+ expect(Ext.typeOf(String)).toEqual('function');
539
+ expect(Ext.typeOf(Date)).toEqual('function');
540
+ expect(Ext.typeOf(Ext.typeOf)).toEqual('function');
541
+
542
+ // In IE certain native functions come back as objects, e.g. alert, prompt and document.getElementById. It
543
+ // isn't clear exactly what correct behaviour should be in those cases as attempting to treat them like
544
+ // normal functions can causes various problems. Some, like document.getElementBy, have call and apply
545
+ // methods so in most cases will behave like any other function. It might be possible to detect them by
546
+ // using something like this:
547
+ //
548
+ // if (typeof obj === 'object' && !obj.toString && obj.call && obj.apply && (obj + '')) {...}
549
+ });
550
+
551
+ it("should return regexp", function() {
552
+ expect(Ext.typeOf(/test/)).toEqual('regexp');
553
+ expect(Ext.typeOf(new RegExp('test'))).toEqual('regexp');
554
+ });
555
+
556
+ it("should return date", function() {
557
+ expect(Ext.typeOf(new Date())).toEqual('date');
558
+ });
559
+
560
+ it("should return textnode", function() {
561
+ expect(Ext.typeOf(document.createTextNode('tada'))).toEqual('textnode');
562
+ expect(Ext.typeOf(document.createTextNode(' '))).toEqual('whitespace');
563
+ expect(Ext.typeOf(document.createTextNode(' '))).toEqual('whitespace');
564
+ });
565
+
566
+ it("should return element", function() {
567
+ expect(Ext.typeOf(document.getElementsByTagName('body')[0])).toEqual('element');
568
+ expect(Ext.typeOf(document.createElement('button'))).toEqual('element');
569
+ expect(Ext.typeOf(new Image())).toEqual('element');
570
+ });
571
+
572
+ it("should return object", function() {
573
+ expect(Ext.typeOf({some: 'stuff'})).toEqual('object');
574
+ expect(Ext.typeOf(new Object())).toEqual('object');
575
+ expect(Ext.typeOf(window)).toEqual('object');
576
+ });
577
+
578
+ });
579
+
580
+ describe("Ext.isIterable", function() {
581
+ it("should return true with empty array", function() {
582
+ expect(Ext.isIterable([])).toBe(true);
583
+ });
584
+
585
+ it("should return true with filled array", function() {
586
+ expect(Ext.isIterable([1, 2, 3, 4])).toBe(true);
587
+ });
588
+
589
+ it("should return false with boolean true", function() {
590
+ expect(Ext.isIterable(true)).toBe(false);
591
+ });
592
+
593
+ it("should return false with boolean false", function() {
594
+ expect(Ext.isIterable(false)).toBe(false);
595
+ });
596
+
597
+ it("should return false with string", function() {
598
+ expect(Ext.isIterable("foo")).toBe(false);
599
+ });
600
+
601
+ it("should return false with empty string", function() {
602
+ expect(Ext.isIterable("")).toBe(false);
603
+ });
604
+
605
+ it("should return false with number", function() {
606
+ expect(Ext.isIterable(1)).toBe(false);
607
+ });
608
+
609
+ it("should return false with null", function() {
610
+ expect(Ext.isIterable(null)).toBe(false);
611
+ });
612
+
613
+ it("should return false with undefined", function() {
614
+ expect(Ext.isIterable(undefined)).toBe(false);
615
+ });
616
+
617
+ it("should return false with date", function() {
618
+ expect(Ext.isIterable(new Date())).toBe(false);
619
+ });
620
+
621
+ it("should return false with empty object", function() {
622
+ expect(Ext.isIterable({})).toBe(false);
623
+ });
624
+
625
+ it("should return true with node list", function() {
626
+ expect(Ext.isIterable(document.getElementsByTagName('body'))).toBe(true);
627
+ });
628
+
629
+ it("should return true with html collection", function() {
630
+ expect(Ext.isIterable(document.images)).toBe(true);
631
+ });
632
+
633
+ it("should return false for a function", function(){
634
+ expect(Ext.isIterable(function(){})).toBe(false);
635
+ });
636
+ });
637
+
638
+ describe("Ext.isArray", function() {
639
+ it("should return true with empty array", function() {
640
+ expect(Ext.isArray([])).toBe(true);
641
+ });
642
+
643
+ it("should return true with filled array", function() {
644
+ expect(Ext.isArray([1, 2, 3, 4])).toBe(true);
645
+ });
646
+
647
+ it("should return false with boolean true", function() {
648
+ expect(Ext.isArray(true)).toBe(false);
649
+ });
650
+
651
+ it("should return false with boolean false", function() {
652
+ expect(Ext.isArray(false)).toBe(false);
653
+ });
654
+
655
+ it("should return false with string", function() {
656
+ expect(Ext.isArray("foo")).toBe(false);
657
+ });
658
+
659
+ it("should return false with empty string", function() {
660
+ expect(Ext.isArray("")).toBe(false);
661
+ });
662
+
663
+ it("should return false with number", function() {
664
+ expect(Ext.isArray(1)).toBe(false);
665
+ });
666
+
667
+ it("should return false with null", function() {
668
+ expect(Ext.isArray(null)).toBe(false);
669
+ });
670
+
671
+ it("should return false with undefined", function() {
672
+ expect(Ext.isArray(undefined)).toBe(false);
673
+ });
674
+
675
+ it("should return false with date", function() {
676
+ expect(Ext.isArray(new Date())).toBe(false);
677
+ });
678
+
679
+ it("should return false with empty object", function() {
680
+ expect(Ext.isArray({})).toBe(false);
681
+ });
682
+
683
+ it("should return false with node list", function() {
684
+ expect(Ext.isArray(document.getElementsByTagName('body'))).toBe(false);
685
+ });
686
+
687
+ it("should return false with custom class that has a length property", function() {
688
+ var C = Ext.extend(Object, {
689
+ length: 1
690
+ });
691
+ expect(Ext.isArray(new C())).toBe(false);
692
+ });
693
+
694
+ it("should return false with element", function() {
695
+ expect(Ext.isArray(Ext.getBody().dom)).toBe(false);
696
+ });
697
+ });
698
+
699
+ describe("Ext.isBoolean", function() {
700
+ it("should return false with empty array", function() {
701
+ expect(Ext.isBoolean([])).toBe(false);
702
+ });
703
+
704
+ it("should return false with filled array", function() {
705
+ expect(Ext.isBoolean([1, 2, 3, 4])).toBe(false);
706
+ });
707
+
708
+ it("should return true with boolean true", function() {
709
+ expect(Ext.isBoolean(true)).toBe(true);
710
+ });
711
+
712
+ it("should return true with boolean false", function() {
713
+ expect(Ext.isBoolean(false)).toBe(true);
714
+ });
715
+
716
+ it("should return false with string", function() {
717
+ expect(Ext.isBoolean("foo")).toBe(false);
718
+ });
719
+
720
+ it("should return false with empty string", function() {
721
+ expect(Ext.isBoolean("")).toBe(false);
722
+ });
723
+
724
+ it("should return false with number", function() {
725
+ expect(Ext.isBoolean(1)).toBe(false);
726
+ });
727
+
728
+ it("should return false with null", function() {
729
+ expect(Ext.isBoolean(null)).toBe(false);
730
+ });
731
+
732
+ it("should return false with undefined", function() {
733
+ expect(Ext.isBoolean(undefined)).toBe(false);
734
+ });
735
+
736
+ it("should return false with date", function() {
737
+ expect(Ext.isBoolean(new Date())).toBe(false);
738
+ });
739
+
740
+ it("should return false with empty object", function() {
741
+ expect(Ext.isBoolean({})).toBe(false);
742
+ });
743
+
744
+ it("should return false with node list", function() {
745
+ expect(Ext.isBoolean(document.getElementsByTagName('body'))).toBe(false);
746
+ });
747
+
748
+ it("should return false with element", function() {
749
+ expect(Ext.isArray(Ext.getBody().dom)).toBe(false);
750
+ });
751
+ });
752
+
753
+ describe("Ext.isDate", function() {
754
+ it("should return false with empty array", function() {
755
+ expect(Ext.isDate([])).toBe(false);
756
+ });
757
+
758
+ it("should return false with filled array", function() {
759
+ expect(Ext.isDate([1, 2, 3, 4])).toBe(false);
760
+ });
761
+
762
+ it("should return false with boolean true", function() {
763
+ expect(Ext.isDate(true)).toBe(false);
764
+ });
765
+
766
+ it("should return false with boolean false", function() {
767
+ expect(Ext.isDate(false)).toBe(false);
768
+ });
769
+
770
+ it("should return false with string", function() {
771
+ expect(Ext.isDate("foo")).toBe(false);
772
+ });
773
+
774
+ it("should return false with empty string", function() {
775
+ expect(Ext.isDate("")).toBe(false);
776
+ });
777
+
778
+ it("should return false with number", function() {
779
+ expect(Ext.isDate(1)).toBe(false);
780
+ });
781
+
782
+ it("should return false with null", function() {
783
+ expect(Ext.isDate(null)).toBe(false);
784
+ });
785
+
786
+ it("should return false with undefined", function() {
787
+ expect(Ext.isDate(undefined)).toBe(false);
788
+ });
789
+
790
+ it("should return true with date", function() {
791
+ expect(Ext.isDate(new Date())).toBe(true);
792
+ });
793
+
794
+ it("should return false with empty object", function() {
795
+ expect(Ext.isDate({})).toBe(false);
796
+ });
797
+
798
+ it("should return false with node list", function() {
799
+ expect(Ext.isDate(document.getElementsByTagName('body'))).toBe(false);
800
+ });
801
+
802
+ it("should return false with element", function() {
803
+ expect(Ext.isDate(Ext.getBody().dom)).toBe(false);
804
+ });
805
+ });
806
+
807
+ describe("Ext.isDefined", function() {
808
+ it("should return true with empty array", function() {
809
+ expect(Ext.isDefined([])).toBe(true);
810
+ });
811
+
812
+ it("should return true with filled array", function() {
813
+ expect(Ext.isDefined([1, 2, 3, 4])).toBe(true);
814
+ });
815
+
816
+ it("should return true with boolean true", function() {
817
+ expect(Ext.isDefined(true)).toBe(true);
818
+ });
819
+
820
+ it("should return true with boolean false", function() {
821
+ expect(Ext.isDefined(false)).toBe(true);
822
+ });
823
+
824
+ it("should return true with string", function() {
825
+ expect(Ext.isDefined("foo")).toBe(true);
826
+ });
827
+
828
+ it("should return true with empty string", function() {
829
+ expect(Ext.isDefined("")).toBe(true);
830
+ });
831
+
832
+ it("should return true with number", function() {
833
+ expect(Ext.isDefined(1)).toBe(true);
834
+ });
835
+
836
+ it("should return true with null", function() {
837
+ expect(Ext.isDefined(null)).toBe(true);
838
+ });
839
+
840
+ it("should return false with undefined", function() {
841
+ expect(Ext.isDefined(undefined)).toBe(false);
842
+ });
843
+
844
+ it("should return true with date", function() {
845
+ expect(Ext.isDefined(new Date())).toBe(true);
846
+ });
847
+
848
+ it("should return true with empty object", function() {
849
+ expect(Ext.isDefined({})).toBe(true);
850
+ });
851
+
852
+ it("should return true with node list", function() {
853
+ expect(Ext.isDefined(document.getElementsByTagName('body'))).toBe(true);
854
+ });
855
+
856
+ it("should return true with element", function() {
857
+ expect(Ext.isDefined(Ext.getBody().dom)).toBe(true);
858
+ });
859
+ });
860
+
861
+ describe("Ext.isElement", function() {
862
+ it("should return false with empty array", function() {
863
+ expect(Ext.isElement([])).toBe(false);
864
+ });
865
+
866
+ it("should return false with filled array", function() {
867
+ expect(Ext.isElement([1, 2, 3, 4])).toBe(false);
868
+ });
869
+
870
+ it("should return false with boolean true", function() {
871
+ expect(Ext.isElement(true)).toBe(false);
872
+ });
873
+
874
+ it("should return false with boolean false", function() {
875
+ expect(Ext.isElement(false)).toBe(false);
876
+ });
877
+
878
+ it("should return false with string", function() {
879
+ expect(Ext.isElement("foo")).toBe(false);
880
+ });
881
+
882
+ it("should return false with empty string", function() {
883
+ expect(Ext.isElement("")).toBe(false);
884
+ });
885
+
886
+ it("should return false with number", function() {
887
+ expect(Ext.isElement(1)).toBe(false);
888
+ });
889
+
890
+ it("should return false with null", function() {
891
+ expect(Ext.isElement(null)).toBe(false);
892
+ });
893
+
894
+ it("should return false with undefined", function() {
895
+ expect(Ext.isElement(undefined)).toBe(false);
896
+ });
897
+
898
+ it("should return false with date", function() {
899
+ expect(Ext.isElement(new Date())).toBe(false);
900
+ });
901
+
902
+ it("should return false with empty object", function() {
903
+ expect(Ext.isElement({})).toBe(false);
904
+ });
905
+
906
+ it("should return false with node list", function() {
907
+ expect(Ext.isElement(document.getElementsByTagName('body'))).toBe(false);
908
+ });
909
+
910
+ it("should return true with element", function() {
911
+ expect(Ext.isElement(Ext.getBody().dom)).toBe(true);
912
+ });
913
+
914
+ it("should return false with Ext.Element", function() {
915
+ expect(Ext.isElement(Ext.getBody())).toBe(false);
916
+ });
917
+
918
+ it("should return false with TextNode", function() {
919
+ var textNode = document.createTextNode('foobar');
920
+ document.body.appendChild(textNode);
921
+ expect(Ext.isElement(textNode)).toBe(false);
922
+ document.body.removeChild(textNode);
923
+ });
924
+ });
925
+
926
+ describe("Ext.isEmpty", function() {
927
+ it("should return true with empty array", function() {
928
+ expect(Ext.isEmpty([])).toBe(true);
929
+ });
930
+
931
+ it("should return false with filled array", function() {
932
+ expect(Ext.isEmpty([1, 2, 3, 4])).toBe(false);
933
+ });
934
+
935
+ it("should return false with boolean true", function() {
936
+ expect(Ext.isEmpty(true)).toBe(false);
937
+ });
938
+
939
+ it("should return false with boolean false", function() {
940
+ expect(Ext.isEmpty(false)).toBe(false);
941
+ });
942
+
943
+ it("should return false with string", function() {
944
+ expect(Ext.isEmpty("foo")).toBe(false);
945
+ });
946
+
947
+ it("should return true with empty string", function() {
948
+ expect(Ext.isEmpty("")).toBe(true);
949
+ });
950
+
951
+ it("should return true with empty string with allowBlank", function() {
952
+ expect(Ext.isEmpty("", true)).toBe(false);
953
+ });
954
+
955
+ it("should return false with number", function() {
956
+ expect(Ext.isEmpty(1)).toBe(false);
957
+ });
958
+
959
+ it("should return true with null", function() {
960
+ expect(Ext.isEmpty(null)).toBe(true);
961
+ });
962
+
963
+ it("should return true with undefined", function() {
964
+ expect(Ext.isEmpty(undefined)).toBe(true);
965
+ });
966
+
967
+ it("should return false with date", function() {
968
+ expect(Ext.isEmpty(new Date())).toBe(false);
969
+ });
970
+
971
+ it("should return false with empty object", function() {
972
+ expect(Ext.isEmpty({})).toBe(false);
973
+ });
974
+ });
975
+
976
+ describe("Ext.isFunction", function() {
977
+ beforeEach(function() {
978
+ // add global variable in whitelist
979
+ addGlobal("ExtBox1");
980
+ });
981
+
982
+ it("should return true with anonymous function", function() {
983
+ expect(Ext.isFunction(function(){})).toBe(true);
984
+ });
985
+
986
+ it("should return true with new Function syntax", function() {
987
+ expect(Ext.isFunction(Ext.functionFactory('return "";'))).toBe(true);
988
+ });
989
+
990
+ it("should return true with static function", function() {
991
+ expect(Ext.isFunction(Ext.emptyFn)).toBe(true);
992
+ });
993
+
994
+ it("should return true with instance function", function() {
995
+ var stupidClass = function() {},
996
+ testObject;
997
+ stupidClass.prototype.testMe = function() {};
998
+ testObject = new stupidClass();
999
+
1000
+ expect(Ext.isFunction(testObject.testMe)).toBe(true);
1001
+ });
1002
+
1003
+ it("should return true with function on object", function() {
1004
+ var o = {
1005
+ fn: function() {
1006
+ }
1007
+ };
1008
+
1009
+ expect(Ext.isFunction(o.fn)).toBe(true);
1010
+ });
1011
+
1012
+ it("should return false with empty array", function() {
1013
+ expect(Ext.isFunction([])).toBe(false);
1014
+ });
1015
+
1016
+ it("should return false with filled array", function() {
1017
+ expect(Ext.isFunction([1, 2, 3, 4])).toBe(false);
1018
+ });
1019
+
1020
+ it("should return false with boolean true", function() {
1021
+ expect(Ext.isFunction(true)).toBe(false);
1022
+ });
1023
+
1024
+ it("should return false with boolean false", function() {
1025
+ expect(Ext.isFunction(false)).toBe(false);
1026
+ });
1027
+
1028
+ it("should return false with string", function() {
1029
+ expect(Ext.isFunction("foo")).toBe(false);
1030
+ });
1031
+
1032
+ it("should return false with empty string", function() {
1033
+ expect(Ext.isFunction("")).toBe(false);
1034
+ });
1035
+
1036
+ it("should return false with number", function() {
1037
+ expect(Ext.isFunction(1)).toBe(false);
1038
+ });
1039
+
1040
+ it("should return false with null", function() {
1041
+ expect(Ext.isFunction(null)).toBe(false);
1042
+ });
1043
+
1044
+ it("should return false with undefined", function() {
1045
+ expect(Ext.isFunction(undefined)).toBe(false);
1046
+ });
1047
+
1048
+ it("should return false with date", function() {
1049
+ expect(Ext.isFunction(new Date())).toBe(false);
1050
+ });
1051
+
1052
+ it("should return false with empty object", function() {
1053
+ expect(Ext.isFunction({})).toBe(false);
1054
+ });
1055
+
1056
+ it("should return false with node list", function() {
1057
+ expect(Ext.isFunction(document.getElementsByTagName('body'))).toBe(false);
1058
+ });
1059
+ });
1060
+
1061
+ describe("Ext.isNumber", function() {
1062
+ it("should return true with zero", function() {
1063
+ expect(Ext.isNumber(0)).toBe(true);
1064
+ });
1065
+
1066
+ it("should return true with non zero", function() {
1067
+ expect(Ext.isNumber(4)).toBe(true);
1068
+ });
1069
+
1070
+ it("should return true with negative integer", function() {
1071
+ expect(Ext.isNumber(-3)).toBe(true);
1072
+ });
1073
+
1074
+ it("should return true with float", function() {
1075
+ expect(Ext.isNumber(1.75)).toBe(true);
1076
+ });
1077
+
1078
+ it("should return true with negative float", function() {
1079
+ expect(Ext.isNumber(-4.75)).toBe(true);
1080
+ });
1081
+
1082
+ it("should return true with Number.MAX_VALUE", function() {
1083
+ expect(Ext.isNumber(Number.MAX_VALUE)).toBe(true);
1084
+ });
1085
+
1086
+ it("should return true with Number.MIN_VALUE", function() {
1087
+ expect(Ext.isNumber(Number.MIN_VALUE)).toBe(true);
1088
+ });
1089
+
1090
+ it("should return true with Math.PI", function() {
1091
+ expect(Ext.isNumber(Math.PI)).toBe(true);
1092
+ });
1093
+
1094
+ it("should return true with Number() contructor", function() {
1095
+ expect(Ext.isNumber(Number('3.1'))).toBe(true);
1096
+ });
1097
+
1098
+ it("should return false with NaN", function() {
1099
+ expect(Ext.isNumber(Number.NaN)).toBe(false);
1100
+ });
1101
+
1102
+ it("should return false with Number.POSITIVE_INFINITY", function() {
1103
+ expect(Ext.isNumber(Number.POSITIVE_INFINITY)).toBe(false);
1104
+ });
1105
+
1106
+ it("should return false with Number.NEGATIVE_INFINITY", function() {
1107
+ expect(Ext.isNumber(Number.NEGATIVE_INFINITY)).toBe(false);
1108
+ });
1109
+
1110
+ it("should return false with empty array", function() {
1111
+ expect(Ext.isNumber([])).toBe(false);
1112
+ });
1113
+
1114
+ it("should return false with filled array", function() {
1115
+ expect(Ext.isNumber([1, 2, 3, 4])).toBe(false);
1116
+ });
1117
+
1118
+ it("should return false with boolean true", function() {
1119
+ expect(Ext.isNumber(true)).toBe(false);
1120
+ });
1121
+
1122
+ it("should return false with boolean false", function() {
1123
+ expect(Ext.isNumber(false)).toBe(false);
1124
+ });
1125
+
1126
+ it("should return false with string", function() {
1127
+ expect(Ext.isNumber("foo")).toBe(false);
1128
+ });
1129
+
1130
+ it("should return false with empty string", function() {
1131
+ expect(Ext.isNumber("")).toBe(false);
1132
+ });
1133
+
1134
+ it("should return false with string containing a number", function() {
1135
+ expect(Ext.isNumber("1.0")).toBe(false);
1136
+ });
1137
+
1138
+ it("should return false with undefined", function() {
1139
+ expect(Ext.isNumber(undefined)).toBe(false);
1140
+ });
1141
+
1142
+ it("should return false with date", function() {
1143
+ expect(Ext.isNumber(new Date())).toBe(false);
1144
+ });
1145
+
1146
+ it("should return false with empty object", function() {
1147
+ expect(Ext.isNumber({})).toBe(false);
1148
+ });
1149
+
1150
+ it("should return false with node list", function() {
1151
+ expect(Ext.isNumber(document.getElementsByTagName('body'))).toBe(false);
1152
+ });
1153
+ });
1154
+
1155
+ describe("Ext.isNumeric", function() {
1156
+ it("should return true with zero", function() {
1157
+ expect(Ext.isNumeric(0)).toBe(true);
1158
+ });
1159
+
1160
+ it("should return true with non zero", function() {
1161
+ expect(Ext.isNumeric(4)).toBe(true);
1162
+ });
1163
+
1164
+ it("should return true with negative integer", function() {
1165
+ expect(Ext.isNumeric(-3)).toBe(true);
1166
+ });
1167
+
1168
+ it("should return true with float", function() {
1169
+ expect(Ext.isNumeric(1.75)).toBe(true);
1170
+ });
1171
+
1172
+ it("should return true with negative float", function() {
1173
+ expect(Ext.isNumeric(-4.75)).toBe(true);
1174
+ });
1175
+
1176
+ it("should return true with Number.MAX_VALUE", function() {
1177
+ expect(Ext.isNumeric(Number.MAX_VALUE)).toBe(true);
1178
+ });
1179
+
1180
+ it("should return true with Number.MIN_VALUE", function() {
1181
+ expect(Ext.isNumeric(Number.MIN_VALUE)).toBe(true);
1182
+ });
1183
+
1184
+ it("should return true with Math.PI", function() {
1185
+ expect(Ext.isNumeric(Math.PI)).toBe(true);
1186
+ });
1187
+
1188
+ it("should return true with Number() contructor", function() {
1189
+ expect(Ext.isNumeric(Number('3.1'))).toBe(true);
1190
+ });
1191
+
1192
+ it("should return false with NaN", function() {
1193
+ expect(Ext.isNumeric(Number.NaN)).toBe(false);
1194
+ });
1195
+
1196
+ it("should return false with Number.POSITIVE_INFINITY", function() {
1197
+ expect(Ext.isNumeric(Number.POSITIVE_INFINITY)).toBe(false);
1198
+ });
1199
+
1200
+ it("should return false with Number.NEGATIVE_INFINITY", function() {
1201
+ expect(Ext.isNumeric(Number.NEGATIVE_INFINITY)).toBe(false);
1202
+ });
1203
+
1204
+ it("should return false with empty array", function() {
1205
+ expect(Ext.isNumeric([])).toBe(false);
1206
+ });
1207
+
1208
+ it("should return false with filled array", function() {
1209
+ expect(Ext.isNumeric([1, 2, 3, 4])).toBe(false);
1210
+ });
1211
+
1212
+ it("should return false with boolean true", function() {
1213
+ expect(Ext.isNumeric(true)).toBe(false);
1214
+ });
1215
+
1216
+ it("should return false with boolean false", function() {
1217
+ expect(Ext.isNumeric(false)).toBe(false);
1218
+ });
1219
+
1220
+ it("should return false with string", function() {
1221
+ expect(Ext.isNumeric("foo")).toBe(false);
1222
+ });
1223
+
1224
+ it("should return false with empty string", function() {
1225
+ expect(Ext.isNumeric("")).toBe(false);
1226
+ });
1227
+
1228
+ it("should return true with string containing a number", function() {
1229
+ expect(Ext.isNumeric("1.0")).toBe(true);
1230
+ });
1231
+
1232
+ it("should return false with undefined", function() {
1233
+ expect(Ext.isNumeric(undefined)).toBe(false);
1234
+ });
1235
+
1236
+ it("should return false with date", function() {
1237
+ expect(Ext.isNumeric(new Date())).toBe(false);
1238
+ });
1239
+
1240
+ it("should return false with empty object", function() {
1241
+ expect(Ext.isNumeric({})).toBe(false);
1242
+ });
1243
+
1244
+ it("should return false with node list", function() {
1245
+ expect(Ext.isNumeric(document.getElementsByTagName('body'))).toBe(false);
1246
+ });
1247
+ });
1248
+
1249
+ describe("Ext.isObject", function() {
1250
+ it("should return false with empty array", function() {
1251
+ expect(Ext.isObject([])).toBe(false);
1252
+ });
1253
+
1254
+ it("should return false with filled array", function() {
1255
+ expect(Ext.isObject([1, 2, 3, 4])).toBe(false);
1256
+ });
1257
+
1258
+ it("should return false with boolean true", function() {
1259
+ expect(Ext.isObject(true)).toBe(false);
1260
+ });
1261
+
1262
+ it("should return false with boolean false", function() {
1263
+ expect(Ext.isObject(false)).toBe(false);
1264
+ });
1265
+
1266
+ it("should return false with string", function() {
1267
+ expect(Ext.isObject("foo")).toBe(false);
1268
+ });
1269
+
1270
+ it("should return false with empty string", function() {
1271
+ expect(Ext.isObject("")).toBe(false);
1272
+ });
1273
+
1274
+ it("should return false with number", function() {
1275
+ expect(Ext.isObject(1)).toBe(false);
1276
+ });
1277
+
1278
+ it("should return false with null", function() {
1279
+ expect(Ext.isObject(null)).toBe(false);
1280
+ });
1281
+
1282
+ it("should return false with undefined", function() {
1283
+ expect(Ext.isObject(undefined)).toBe(false);
1284
+ });
1285
+
1286
+ it("should return false with date", function() {
1287
+ expect(Ext.isObject(new Date())).toBe(false);
1288
+ });
1289
+
1290
+ it("should return true with empty object", function() {
1291
+ expect(Ext.isObject({})).toBe(true);
1292
+ });
1293
+
1294
+ it("should return false with a DOM node", function() {
1295
+ expect(Ext.isObject(document.body)).toBe(false);
1296
+ });
1297
+
1298
+ it("should return false with a Text node", function() {
1299
+ expect(Ext.isObject(document.createTextNode('test'))).toBe(false);
1300
+ });
1301
+
1302
+ it("should return true with object with properties", function() {
1303
+ expect(Ext.isObject({
1304
+ foo: 1
1305
+ })).toBe(true);
1306
+ });
1307
+
1308
+ it("should return true with object instance", function() {
1309
+ var stupidClass = function() {};
1310
+
1311
+ expect(Ext.isObject(new stupidClass())).toBe(true);
1312
+ });
1313
+
1314
+ it("should return true with new Object syntax", function() {
1315
+ expect(Ext.isObject(new Object())).toBe(true);
1316
+ });
1317
+
1318
+ it("should return false with dom element", function() {
1319
+ expect(Ext.isObject(document.body)).toBe(false);
1320
+ });
1321
+ });
1322
+
1323
+ describe("Ext.isPrimitive", function() {
1324
+ it("should return true with integer", function() {
1325
+ expect(Ext.isPrimitive(1)).toBe(true);
1326
+ });
1327
+
1328
+ it("should return true with negative integer", function() {
1329
+ expect(Ext.isPrimitive(-21)).toBe(true);
1330
+ });
1331
+
1332
+ it("should return true with float", function() {
1333
+ expect(Ext.isPrimitive(2.1)).toBe(true);
1334
+ });
1335
+
1336
+ it("should return true with negative float", function() {
1337
+ expect(Ext.isPrimitive(-12.1)).toBe(true);
1338
+ });
1339
+
1340
+ it("should return true with Number.MAX_VALUE", function() {
1341
+ expect(Ext.isPrimitive(Number.MAX_VALUE)).toBe(true);
1342
+ });
1343
+
1344
+ it("should return true with Math.PI", function() {
1345
+ expect(Ext.isPrimitive(Math.PI)).toBe(true);
1346
+ });
1347
+
1348
+ it("should return true with empty string", function() {
1349
+ expect(Ext.isPrimitive("")).toBe(true);
1350
+ });
1351
+
1352
+ it("should return true with non empty string", function() {
1353
+ expect(Ext.isPrimitive("foo")).toBe(true);
1354
+ });
1355
+
1356
+ it("should return true with boolean true", function() {
1357
+ expect(Ext.isPrimitive(true)).toBe(true);
1358
+ });
1359
+
1360
+ it("should return true with boolean false", function() {
1361
+ expect(Ext.isPrimitive(false)).toBe(true);
1362
+ });
1363
+
1364
+ it("should return false with null", function() {
1365
+ expect(Ext.isPrimitive(null)).toBe(false);
1366
+ });
1367
+
1368
+ it("should return false with undefined", function() {
1369
+ expect(Ext.isPrimitive(undefined)).toBe(false);
1370
+ });
1371
+
1372
+ it("should return false with object", function() {
1373
+ expect(Ext.isPrimitive({})).toBe(false);
1374
+ });
1375
+
1376
+ it("should return false with object instance", function() {
1377
+ var stupidClass = function() {};
1378
+ expect(Ext.isPrimitive(new stupidClass())).toBe(false);
1379
+ });
1380
+
1381
+ it("should return false with array", function() {
1382
+ expect(Ext.isPrimitive([])).toBe(false);
1383
+ });
1384
+ });
1385
+
1386
+ describe("Ext.isString", function() {
1387
+ it("should return true with empty string", function() {
1388
+ expect(Ext.isString("")).toBe(true);
1389
+ });
1390
+
1391
+ it("should return true with non empty string", function() {
1392
+ expect(Ext.isString("foo")).toBe(true);
1393
+ });
1394
+
1395
+ it("should return true with String() syntax", function() {
1396
+ expect(Ext.isString(String(""))).toBe(true);
1397
+ });
1398
+
1399
+ it("should return false with new String() syntax", function() { //should return an object that wraps the primitive
1400
+ expect(Ext.isString(new String(""))).toBe(false);
1401
+ });
1402
+
1403
+ it("should return false with number", function() {
1404
+ expect(Ext.isString(1)).toBe(false);
1405
+ });
1406
+
1407
+ it("should return false with boolean", function() {
1408
+ expect(Ext.isString(true)).toBe(false);
1409
+ });
1410
+
1411
+ it("should return false with null", function() {
1412
+ expect(Ext.isString(null)).toBe(false);
1413
+ });
1414
+
1415
+ it("should return false with undefined", function() {
1416
+ expect(Ext.isString(undefined)).toBe(false);
1417
+ });
1418
+
1419
+ it("should return false with array", function() {
1420
+ expect(Ext.isString([])).toBe(false);
1421
+ });
1422
+
1423
+ it("should return false with object", function() {
1424
+ expect(Ext.isString({})).toBe(false);
1425
+ });
1426
+ });
1427
+
1428
+ describe("Ext.isTextNode", function() {
1429
+ it("should return false with empty array", function() {
1430
+ expect(Ext.isTextNode([])).toBe(false);
1431
+ });
1432
+
1433
+ it("should return false with filled array", function() {
1434
+ expect(Ext.isTextNode([1, 2, 3, 4])).toBe(false);
1435
+ });
1436
+
1437
+ it("should return false with boolean true", function() {
1438
+ expect(Ext.isTextNode(true)).toBe(false);
1439
+ });
1440
+
1441
+ it("should return false with boolean false", function() {
1442
+ expect(Ext.isTextNode(false)).toBe(false);
1443
+ });
1444
+
1445
+ it("should return false with string", function() {
1446
+ expect(Ext.isTextNode("foo")).toBe(false);
1447
+ });
1448
+
1449
+ it("should return false with empty string", function() {
1450
+ expect(Ext.isTextNode("")).toBe(false);
1451
+ });
1452
+
1453
+ it("should return false with number", function() {
1454
+ expect(Ext.isTextNode(1)).toBe(false);
1455
+ });
1456
+
1457
+ it("should return false with null", function() {
1458
+ expect(Ext.isTextNode(null)).toBe(false);
1459
+ });
1460
+
1461
+ it("should return false with undefined", function() {
1462
+ expect(Ext.isTextNode(undefined)).toBe(false);
1463
+ });
1464
+
1465
+ it("should return false with date", function() {
1466
+ expect(Ext.isTextNode(new Date())).toBe(false);
1467
+ });
1468
+
1469
+ it("should return false with empty object", function() {
1470
+ expect(Ext.isTextNode({})).toBe(false);
1471
+ });
1472
+
1473
+ it("should return false with node list", function() {
1474
+ expect(Ext.isTextNode(document.getElementsByTagName('body'))).toBe(false);
1475
+ });
1476
+
1477
+ it("should return false with element", function() {
1478
+ expect(Ext.isTextNode(Ext.getBody().dom)).toBe(false);
1479
+ });
1480
+
1481
+ it("should return false with Ext.Element", function() {
1482
+ expect(Ext.isTextNode(Ext.getBody())).toBe(false);
1483
+ });
1484
+
1485
+ it("should return true with TextNode", function() {
1486
+ var textNode = document.createTextNode('foobar');
1487
+ document.body.appendChild(textNode);
1488
+ expect(Ext.isTextNode(textNode)).toBe(true);
1489
+ document.body.removeChild(textNode);
1490
+ });
1491
+ });
1492
+
1493
+ describe("Ext.clone", function() {
1494
+ var clone;
1495
+
1496
+ afterEach(function() {
1497
+ clone = null;
1498
+ });
1499
+
1500
+ it("should clone an array", function() {
1501
+ var array = [2,'5',[1,3,4]];
1502
+ clone = Ext.clone(array);
1503
+ expect(clone).toEqual(array);
1504
+ expect(clone).not.toBe(array);
1505
+ });
1506
+
1507
+ it("should clone an object", function() {
1508
+ var object = {
1509
+ fn: function() {
1510
+ return 1;
1511
+ },
1512
+ b: 2
1513
+ };
1514
+ clone = Ext.clone(object);
1515
+ expect(clone).toEqual(object);
1516
+ expect(clone).not.toBe(object);
1517
+ });
1518
+
1519
+ it("should clone a date", function(){
1520
+ var date = new Date();
1521
+ clone = Ext.clone(date);
1522
+ expect(clone).toEqual(date);
1523
+ expect(clone).not.toBe(date);
1524
+ });
1525
+
1526
+ it("should clone a dom node", function(){
1527
+ var node = document.createElement('DIV');
1528
+ document.body.appendChild(node);
1529
+ clone = Ext.clone(node);
1530
+ expect(clone.tagName).toEqual(clone.tagName);
1531
+ expect(clone.innerHTML).toEqual(clone.innerHTML);
1532
+ expect(clone).not.toBe(node);
1533
+ document.body.removeChild(node);
1534
+ });
1535
+
1536
+ it("should return null for null items", function() {
1537
+ expect(Ext.clone(null)).toBeNull();
1538
+ });
1539
+
1540
+ it("should return undefined for undefined items", function() {
1541
+ expect(Ext.clone(undefined)).toBeUndefined();
1542
+ });
1543
+ });
1544
+
1545
+ describe('getUniqueGlobalNamespace', function() {
1546
+ it("should return an unique global namespace", function() {
1547
+ expect(Ext.getUniqueGlobalNamespace()).toBe("ExtBox1");
1548
+ });
1549
+ });
1550
+ });