sproutit-sproutcore 1.0.0.20090407205609 → 1.0.0.20090408130025

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 (574) hide show
  1. data/frameworks/sproutcore/Buildfile +63 -0
  2. data/frameworks/sproutcore/HISTORY +682 -0
  3. data/frameworks/sproutcore/README +22 -0
  4. data/frameworks/sproutcore/apps/sc_jsdoc/controllers/docs.js +149 -0
  5. data/frameworks/sproutcore/apps/sc_jsdoc/core.js +16 -0
  6. data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.css +17 -0
  7. data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.js +99 -0
  8. data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/images/sproutcore-logo.png +0 -0
  9. data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/strings.js +15 -0
  10. data/frameworks/sproutcore/apps/sc_jsdoc/main.js +27 -0
  11. data/frameworks/sproutcore/apps/sc_jsdoc/models/doc.js +21 -0
  12. data/frameworks/sproutcore/apps/sc_qunit/controllers/runner.js +209 -0
  13. data/frameworks/sproutcore/apps/sc_qunit/core.js +16 -0
  14. data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.css +17 -0
  15. data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.js +107 -0
  16. data/frameworks/sproutcore/apps/sc_qunit/english.lproj/images/sproutcore-logo.png +0 -0
  17. data/frameworks/sproutcore/apps/sc_qunit/english.lproj/strings.js +15 -0
  18. data/frameworks/sproutcore/apps/sc_qunit/main.js +18 -0
  19. data/frameworks/sproutcore/apps/sc_qunit/models/test.js +24 -0
  20. data/frameworks/sproutcore/apps/sc_qunit/views/test_iframe.js +52 -0
  21. data/frameworks/sproutcore/apps/tests/controllers/targets.js +47 -0
  22. data/frameworks/sproutcore/apps/tests/controllers/test.js +20 -0
  23. data/frameworks/sproutcore/apps/tests/controllers/tests.js +38 -0
  24. data/frameworks/sproutcore/apps/tests/core.js +35 -0
  25. data/frameworks/sproutcore/apps/tests/english.lproj/loading.rhtml +9 -0
  26. data/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +19 -0
  27. data/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +86 -0
  28. data/frameworks/sproutcore/apps/tests/english.lproj/strings.js +17 -0
  29. data/frameworks/sproutcore/apps/tests/fixtures/target.js +43 -0
  30. data/frameworks/sproutcore/apps/tests/fixtures/test.js +43 -0
  31. data/frameworks/sproutcore/apps/tests/main.js +39 -0
  32. data/frameworks/sproutcore/apps/tests/models/target.js +49 -0
  33. data/frameworks/sproutcore/apps/tests/models/test.js +20 -0
  34. data/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +15 -0
  35. data/frameworks/sproutcore/apps/tests/tests/controllers/test.js +15 -0
  36. data/frameworks/sproutcore/apps/tests/tests/controllers/tests.js +15 -0
  37. data/frameworks/sproutcore/apps/tests/tests/models/target.js +15 -0
  38. data/frameworks/sproutcore/apps/tests/tests/models/test.js +15 -0
  39. data/frameworks/sproutcore/apps/welcome/core.js +23 -0
  40. data/frameworks/sproutcore/apps/welcome/english.lproj/loading.rhtml +8 -0
  41. data/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +43 -0
  42. data/frameworks/sproutcore/apps/welcome/english.lproj/strings.js +15 -0
  43. data/frameworks/sproutcore/apps/welcome/main.js +36 -0
  44. data/frameworks/sproutcore/design/Design Charts.graffle +15819 -0
  45. data/frameworks/sproutcore/design/Record State Table.numbers +0 -0
  46. data/frameworks/sproutcore/frameworks/datastore/core.js +14 -0
  47. data/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +113 -0
  48. data/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +256 -0
  49. data/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +196 -0
  50. data/frameworks/sproutcore/frameworks/datastore/debug/json.js +71 -0
  51. data/frameworks/sproutcore/frameworks/datastore/debug/standard_setup.js +96 -0
  52. data/frameworks/sproutcore/frameworks/datastore/fixtures/author_fixtures.js +2503 -0
  53. data/frameworks/sproutcore/frameworks/datastore/fixtures/sample.js +17 -0
  54. data/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +92 -0
  55. data/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +38 -0
  56. data/frameworks/sproutcore/frameworks/datastore/models/record.js +430 -0
  57. data/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +361 -0
  58. data/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +305 -0
  59. data/frameworks/sproutcore/frameworks/datastore/system/query.js +128 -0
  60. data/frameworks/sproutcore/frameworks/datastore/system/record_array.js +149 -0
  61. data/frameworks/sproutcore/frameworks/datastore/system/store.js +1689 -0
  62. data/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +86 -0
  63. data/frameworks/sproutcore/frameworks/datastore/tests/integration/contact_model.js +114 -0
  64. data/frameworks/sproutcore/frameworks/datastore/tests/integration/mail_model.js +91 -0
  65. data/frameworks/sproutcore/frameworks/datastore/tests/integration/test_runner_model.js +56 -0
  66. data/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +73 -0
  67. data/frameworks/sproutcore/frameworks/datastore/tests/models/record/readAttribute.js +48 -0
  68. data/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +42 -0
  69. data/frameworks/sproutcore/frameworks/datastore/tests/models/record/storeDidChangeProperties.js +138 -0
  70. data/frameworks/sproutcore/frameworks/datastore/tests/models/record/unknownProperty.js +46 -0
  71. data/frameworks/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +71 -0
  72. data/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +115 -0
  73. data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +40 -0
  74. data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +116 -0
  75. data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +135 -0
  76. data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +110 -0
  77. data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +99 -0
  78. data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +180 -0
  79. data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readEditableDataHash.js +126 -0
  80. data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/removeDataHash.js +163 -0
  81. data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/writeDataHash.js +166 -0
  82. data/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +175 -0
  83. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +54 -0
  84. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +126 -0
  85. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +127 -0
  86. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +57 -0
  87. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataHashDidChange.js +78 -0
  88. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +247 -0
  89. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +106 -0
  90. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/init.js +21 -0
  91. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +61 -0
  92. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +74 -0
  93. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/readEditableDataHash.js +74 -0
  94. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +74 -0
  95. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/removeDataHash.js +144 -0
  96. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +137 -0
  97. data/frameworks/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js +130 -0
  98. data/frameworks/sproutcore/frameworks/debug/core.js +1 -0
  99. data/frameworks/sproutcore/frameworks/deprecated/core.js +61 -0
  100. data/frameworks/sproutcore/frameworks/deprecated/lib/button_views.rb +330 -0
  101. data/frameworks/sproutcore/frameworks/deprecated/lib/collection_view.rb +83 -0
  102. data/frameworks/sproutcore/frameworks/deprecated/lib/core_views.rb +326 -0
  103. data/frameworks/sproutcore/frameworks/deprecated/lib/form_views.rb +253 -0
  104. data/frameworks/sproutcore/frameworks/deprecated/lib/index.rhtml +75 -0
  105. data/frameworks/sproutcore/frameworks/deprecated/lib/menu_views.rb +93 -0
  106. data/frameworks/sproutcore/frameworks/deprecated/server/rails_server.js +80 -0
  107. data/frameworks/sproutcore/frameworks/deprecated/server/rest_server.js +178 -0
  108. data/frameworks/sproutcore/frameworks/deprecated/server/server.js +674 -0
  109. data/frameworks/sproutcore/frameworks/deprecated/system/animator.js +679 -0
  110. data/frameworks/sproutcore/frameworks/deprecated/system/binding.js +36 -0
  111. data/frameworks/sproutcore/frameworks/deprecated/system/browser.js +77 -0
  112. data/frameworks/sproutcore/frameworks/deprecated/system/classic_responder.js +314 -0
  113. data/frameworks/sproutcore/frameworks/deprecated/system/event.js +60 -0
  114. data/frameworks/sproutcore/frameworks/deprecated/system/globals.js +20 -0
  115. data/frameworks/sproutcore/frameworks/deprecated/system/misc.js +60 -0
  116. data/frameworks/sproutcore/frameworks/deprecated/system/node_descriptor.js +72 -0
  117. data/frameworks/sproutcore/frameworks/deprecated/system/object.js +124 -0
  118. data/frameworks/sproutcore/frameworks/deprecated/system/path_module.js +433 -0
  119. data/frameworks/sproutcore/frameworks/deprecated/system/string.js +109 -0
  120. data/frameworks/sproutcore/frameworks/deprecated/tests/application/application.rhtml +125 -0
  121. data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/clippingFrame.rhtml +401 -0
  122. data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/frame.rhtml +357 -0
  123. data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/isVisibleInWindow.rhtml +147 -0
  124. data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/base.rhtml +298 -0
  125. data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/incremental_rendering.rhtml +260 -0
  126. data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/source_list_rendering.rhtml +143 -0
  127. data/frameworks/sproutcore/frameworks/deprecated/tests/views/popup_button.rhtml +128 -0
  128. data/frameworks/sproutcore/frameworks/deprecated/tests/views/text_field.rhtml +37 -0
  129. data/frameworks/sproutcore/frameworks/deprecated/views/collection.js +24 -0
  130. data/frameworks/sproutcore/frameworks/designer/coders/design.js +30 -0
  131. data/frameworks/sproutcore/frameworks/designer/coders/localization.js +28 -0
  132. data/frameworks/sproutcore/frameworks/designer/coders/object.js +347 -0
  133. data/frameworks/sproutcore/frameworks/designer/controllers/page_design.js +102 -0
  134. data/frameworks/sproutcore/frameworks/designer/css/css_rule.js +22 -0
  135. data/frameworks/sproutcore/frameworks/designer/css/css_style.js +29 -0
  136. data/frameworks/sproutcore/frameworks/designer/css/css_style_sheet.js +201 -0
  137. data/frameworks/sproutcore/frameworks/designer/ext/page.js +88 -0
  138. data/frameworks/sproutcore/frameworks/designer/ext/view.js +40 -0
  139. data/frameworks/sproutcore/frameworks/designer/views/controls/button.js +18 -0
  140. data/frameworks/sproutcore/frameworks/designer/views/designer.js +553 -0
  141. data/frameworks/sproutcore/frameworks/designer/views/label.js +17 -0
  142. data/frameworks/sproutcore/frameworks/designer/views/mixins/button.js +13 -0
  143. data/frameworks/sproutcore/frameworks/designer/views/tab.js +17 -0
  144. data/frameworks/sproutcore/frameworks/desktop/core.js +6 -0
  145. data/frameworks/sproutcore/frameworks/desktop/debug/drag.js +41 -0
  146. data/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +56 -0
  147. data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/a_sample_image.jpg +0 -0
  148. data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/apple-logo1.jpeg +0 -0
  149. data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/iframe.html +23 -0
  150. data/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +71 -0
  151. data/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +943 -0
  152. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/blank.gif +0 -0
  153. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_222222.png +0 -0
  154. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_454545.png +0 -0
  155. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_888888.png +0 -0
  156. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_ffffff.png +0 -0
  157. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png +0 -0
  158. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/indicator.gif +0 -0
  159. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-x.png +0 -0
  160. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-y.png +0 -0
  161. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/sc-theme-sprite.png +0 -0
  162. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/000000.png +0 -0
  163. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/ffffff.png +0 -0
  164. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/sticky-note.png +0 -0
  165. data/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +156 -0
  166. data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +83 -0
  167. data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +99 -0
  168. data/frameworks/sproutcore/frameworks/desktop/english.lproj/palette.css +3 -0
  169. data/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +94 -0
  170. data/frameworks/sproutcore/frameworks/desktop/english.lproj/picker.css +39 -0
  171. data/frameworks/sproutcore/frameworks/desktop/english.lproj/progress.css +31 -0
  172. data/frameworks/sproutcore/frameworks/desktop/english.lproj/radio.css +10 -0
  173. data/frameworks/sproutcore/frameworks/desktop/english.lproj/scroller.css +26 -0
  174. data/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +141 -0
  175. data/frameworks/sproutcore/frameworks/desktop/english.lproj/separator.css +19 -0
  176. data/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +57 -0
  177. data/frameworks/sproutcore/frameworks/desktop/english.lproj/split.css +70 -0
  178. data/frameworks/sproutcore/frameworks/desktop/english.lproj/split_divider.css +8 -0
  179. data/frameworks/sproutcore/frameworks/desktop/english.lproj/strings.js +14 -0
  180. data/frameworks/sproutcore/frameworks/desktop/english.lproj/tab.css +12 -0
  181. data/frameworks/sproutcore/frameworks/desktop/english.lproj/text_field.css +29 -0
  182. data/frameworks/sproutcore/frameworks/desktop/english.lproj/toolbar.css +6 -0
  183. data/frameworks/sproutcore/frameworks/desktop/mixins/border.js +53 -0
  184. data/frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js +22 -0
  185. data/frameworks/sproutcore/frameworks/desktop/mixins/collection_item.js +22 -0
  186. data/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +226 -0
  187. data/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +247 -0
  188. data/frameworks/sproutcore/frameworks/desktop/panes/alert.js +377 -0
  189. data/frameworks/sproutcore/frameworks/desktop/panes/menu.js +504 -0
  190. data/frameworks/sproutcore/frameworks/desktop/panes/modal.js +68 -0
  191. data/frameworks/sproutcore/frameworks/desktop/panes/palette.js +63 -0
  192. data/frameworks/sproutcore/frameworks/desktop/panes/panel.js +184 -0
  193. data/frameworks/sproutcore/frameworks/desktop/panes/picker.js +402 -0
  194. data/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +46 -0
  195. data/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +39 -0
  196. data/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +81 -0
  197. data/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +175 -0
  198. data/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +280 -0
  199. data/frameworks/sproutcore/frameworks/desktop/system/drag.js +721 -0
  200. data/frameworks/sproutcore/frameworks/desktop/system/key_bindings.js +40 -0
  201. data/frameworks/sproutcore/frameworks/desktop/system/root_responder.js +641 -0
  202. data/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +187 -0
  203. data/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +43 -0
  204. data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/methods.js +10 -0
  205. data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +152 -0
  206. data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +10 -0
  207. data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +57 -0
  208. data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/methods.js +10 -0
  209. data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +36 -0
  210. data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +10 -0
  211. data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +40 -0
  212. data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +10 -0
  213. data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +80 -0
  214. data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/methods.js +10 -0
  215. data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +38 -0
  216. data/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +45 -0
  217. data/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +140 -0
  218. data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +145 -0
  219. data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +99 -0
  220. data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/methods.js +10 -0
  221. data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectPreviousItem.js +39 -0
  222. data/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/methods.js +10 -0
  223. data/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +64 -0
  224. data/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +10 -0
  225. data/frameworks/sproutcore/frameworks/desktop/tests/views/grid/ui.js +10 -0
  226. data/frameworks/sproutcore/frameworks/desktop/tests/views/list/methods.js +10 -0
  227. data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui.js +110 -0
  228. data/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +255 -0
  229. data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/methods.js +10 -0
  230. data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/ui.js +44 -0
  231. data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/methods.js +128 -0
  232. data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +240 -0
  233. data/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +113 -0
  234. data/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +202 -0
  235. data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +139 -0
  236. data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +111 -0
  237. data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/methods.js +63 -0
  238. data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/ui.js +70 -0
  239. data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +94 -0
  240. data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +206 -0
  241. data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +81 -0
  242. data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +85 -0
  243. data/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +37 -0
  244. data/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/methods.js +10 -0
  245. data/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/ui.js +10 -0
  246. data/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +50 -0
  247. data/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +52 -0
  248. data/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +54 -0
  249. data/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +88 -0
  250. data/frameworks/sproutcore/frameworks/desktop/tests/views/text_field/methods.js +76 -0
  251. data/frameworks/sproutcore/frameworks/desktop/tests/views/text_field/ui.js +198 -0
  252. data/frameworks/sproutcore/frameworks/desktop/tests/views/web/methods.js +10 -0
  253. data/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +110 -0
  254. data/frameworks/sproutcore/frameworks/desktop/views/button.js +320 -0
  255. data/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +98 -0
  256. data/frameworks/sproutcore/frameworks/desktop/views/collection.js +2141 -0
  257. data/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +44 -0
  258. data/frameworks/sproutcore/frameworks/desktop/views/form.js +595 -0
  259. data/frameworks/sproutcore/frameworks/desktop/views/grid.js +199 -0
  260. data/frameworks/sproutcore/frameworks/desktop/views/list.js +706 -0
  261. data/frameworks/sproutcore/frameworks/desktop/views/list_item.js +523 -0
  262. data/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +437 -0
  263. data/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +62 -0
  264. data/frameworks/sproutcore/frameworks/desktop/views/progress.js +207 -0
  265. data/frameworks/sproutcore/frameworks/desktop/views/radio.js +332 -0
  266. data/frameworks/sproutcore/frameworks/desktop/views/scene.js +56 -0
  267. data/frameworks/sproutcore/frameworks/desktop/views/scroll.js +648 -0
  268. data/frameworks/sproutcore/frameworks/desktop/views/scroller.js +203 -0
  269. data/frameworks/sproutcore/frameworks/desktop/views/segmented.js +509 -0
  270. data/frameworks/sproutcore/frameworks/desktop/views/select_field.js +292 -0
  271. data/frameworks/sproutcore/frameworks/desktop/views/separator.js +37 -0
  272. data/frameworks/sproutcore/frameworks/desktop/views/slider.js +178 -0
  273. data/frameworks/sproutcore/frameworks/desktop/views/source_list.js +1117 -0
  274. data/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +169 -0
  275. data/frameworks/sproutcore/frameworks/desktop/views/split.js +651 -0
  276. data/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +55 -0
  277. data/frameworks/sproutcore/frameworks/desktop/views/tab.js +190 -0
  278. data/frameworks/sproutcore/frameworks/desktop/views/text_field.js +233 -0
  279. data/frameworks/sproutcore/frameworks/desktop/views/thumb.js +49 -0
  280. data/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +49 -0
  281. data/frameworks/sproutcore/frameworks/desktop/views/web.js +86 -0
  282. data/frameworks/sproutcore/frameworks/foundation/TESTING +46 -0
  283. data/frameworks/sproutcore/frameworks/foundation/controllers/array.js +490 -0
  284. data/frameworks/sproutcore/frameworks/foundation/controllers/controller.js +317 -0
  285. data/frameworks/sproutcore/frameworks/foundation/controllers/object.js +421 -0
  286. data/frameworks/sproutcore/frameworks/foundation/core.js +111 -0
  287. data/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +172 -0
  288. data/frameworks/sproutcore/frameworks/foundation/english.lproj/blank.gif +0 -0
  289. data/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +53 -0
  290. data/frameworks/sproutcore/frameworks/foundation/english.lproj/button_view.css +55 -0
  291. data/frameworks/sproutcore/frameworks/foundation/english.lproj/core.css +5 -0
  292. data/frameworks/sproutcore/frameworks/foundation/english.lproj/debug/control-test-pane.css +8 -0
  293. data/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-logo.png +0 -0
  294. data/frameworks/sproutcore/frameworks/foundation/english.lproj/static_layout.css +5 -0
  295. data/frameworks/sproutcore/frameworks/foundation/english.lproj/view.css +40 -0
  296. data/frameworks/sproutcore/frameworks/foundation/ext/object.js +81 -0
  297. data/frameworks/sproutcore/frameworks/foundation/ext/run_loop.js +158 -0
  298. data/frameworks/sproutcore/frameworks/foundation/fixtures/file_exists.json +1 -0
  299. data/frameworks/sproutcore/frameworks/foundation/mixins/button.js +291 -0
  300. data/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +88 -0
  301. data/frameworks/sproutcore/frameworks/foundation/mixins/control.js +352 -0
  302. data/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +146 -0
  303. data/frameworks/sproutcore/frameworks/foundation/mixins/responder.js +156 -0
  304. data/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +154 -0
  305. data/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +101 -0
  306. data/frameworks/sproutcore/frameworks/foundation/mixins/string.js +237 -0
  307. data/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +176 -0
  308. data/frameworks/sproutcore/frameworks/foundation/panes/main.js +47 -0
  309. data/frameworks/sproutcore/frameworks/foundation/panes/pane.js +555 -0
  310. data/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +84 -0
  311. data/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +244 -0
  312. data/frameworks/sproutcore/frameworks/foundation/system/browser.js +64 -0
  313. data/frameworks/sproutcore/frameworks/foundation/system/builder.js +210 -0
  314. data/frameworks/sproutcore/frameworks/foundation/system/core_query.js +2015 -0
  315. data/frameworks/sproutcore/frameworks/foundation/system/cursor.js +129 -0
  316. data/frameworks/sproutcore/frameworks/foundation/system/error.js +93 -0
  317. data/frameworks/sproutcore/frameworks/foundation/system/event.js +817 -0
  318. data/frameworks/sproutcore/frameworks/foundation/system/image_cache.js +433 -0
  319. data/frameworks/sproutcore/frameworks/foundation/system/json.js +440 -0
  320. data/frameworks/sproutcore/frameworks/foundation/system/locale.js +288 -0
  321. data/frameworks/sproutcore/frameworks/foundation/system/page.js +106 -0
  322. data/frameworks/sproutcore/frameworks/foundation/system/ready.js +189 -0
  323. data/frameworks/sproutcore/frameworks/foundation/system/render_context.js +865 -0
  324. data/frameworks/sproutcore/frameworks/foundation/system/request.js +255 -0
  325. data/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +368 -0
  326. data/frameworks/sproutcore/frameworks/foundation/system/routes.js +446 -0
  327. data/frameworks/sproutcore/frameworks/foundation/system/time.js +478 -0
  328. data/frameworks/sproutcore/frameworks/foundation/system/timer.js +549 -0
  329. data/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +158 -0
  330. data/frameworks/sproutcore/frameworks/foundation/system/utils.js +330 -0
  331. data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array.js +118 -0
  332. data/frameworks/sproutcore/frameworks/foundation/tests/controllers/controller.js +268 -0
  333. data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object.js +433 -0
  334. data/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/methods.js +10 -0
  335. data/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/ui.js +113 -0
  336. data/frameworks/sproutcore/frameworks/foundation/tests/integration/creating_views.js +113 -0
  337. data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/content.js +195 -0
  338. data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/displayProperties.js +89 -0
  339. data/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/content.js +168 -0
  340. data/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +89 -0
  341. data/frameworks/sproutcore/frameworks/foundation/tests/system/builder.js +42 -0
  342. data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +1323 -0
  343. data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_dimensions.js +387 -0
  344. data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +405 -0
  345. data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +49 -0
  346. data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/within.js +66 -0
  347. data/frameworks/sproutcore/frameworks/foundation/tests/system/error.js +41 -0
  348. data/frameworks/sproutcore/frameworks/foundation/tests/system/json.js +14 -0
  349. data/frameworks/sproutcore/frameworks/foundation/tests/system/locale.js +128 -0
  350. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/begin.js +47 -0
  351. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/element.js +44 -0
  352. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/end.js +119 -0
  353. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/get.js +51 -0
  354. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_attr.js +50 -0
  355. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_basic.js +28 -0
  356. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_className.js +179 -0
  357. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_style.js +100 -0
  358. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/init.js +55 -0
  359. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/join.js +28 -0
  360. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/push_text.js +74 -0
  361. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/tag.js +45 -0
  362. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/update.js +205 -0
  363. data/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +89 -0
  364. data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeKeyPane.js +124 -0
  365. data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeMainPane.js +68 -0
  366. data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/root_responder.js +97 -0
  367. data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/targetForAction.js +238 -0
  368. data/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +33 -0
  369. data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invalidate.js +38 -0
  370. data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invokeLater.js +201 -0
  371. data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/isPaused.js +71 -0
  372. data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/performAction.js +67 -0
  373. data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/schedule.js +170 -0
  374. data/frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js +27 -0
  375. data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/normalizeURL.js +18 -0
  376. data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/range.js +62 -0
  377. data/frameworks/sproutcore/frameworks/foundation/tests/validators/credit_card.js +35 -0
  378. data/frameworks/sproutcore/frameworks/foundation/tests/validators/date.js +21 -0
  379. data/frameworks/sproutcore/frameworks/foundation/tests/validators/number.js +47 -0
  380. data/frameworks/sproutcore/frameworks/foundation/tests/validators/password.js +13 -0
  381. data/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +10 -0
  382. data/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +83 -0
  383. data/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +39 -0
  384. data/frameworks/sproutcore/frameworks/foundation/tests/views/main_pane.js +31 -0
  385. data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/append_remove.js +89 -0
  386. data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/firstResponder.js +148 -0
  387. data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/keyPane.js +133 -0
  388. data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/sendEvent.js +165 -0
  389. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +132 -0
  390. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertFrames.js +246 -0
  391. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createChildViews.js +87 -0
  392. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createLayer.js +97 -0
  393. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/destroyLayer.js +85 -0
  394. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/findLayerInParentLayer.js +52 -0
  395. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/init.js +50 -0
  396. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/insertBefore.js +200 -0
  397. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisibleInWindow.js +102 -0
  398. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layer.js +150 -0
  399. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutChildViews.js +162 -0
  400. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutDidChange.js +127 -0
  401. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutStyle.js +248 -0
  402. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/parentViewDidChange.js +67 -0
  403. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/prepareContext.js +166 -0
  404. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/removeChild.js +189 -0
  405. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/render.js +83 -0
  406. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/replaceChild.js +29 -0
  407. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +142 -0
  408. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayerLocation.js +194 -0
  409. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/viewDidResize.js +185 -0
  410. data/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +125 -0
  411. data/frameworks/sproutcore/frameworks/foundation/validators/date.js +52 -0
  412. data/frameworks/sproutcore/frameworks/foundation/validators/email.js +45 -0
  413. data/frameworks/sproutcore/frameworks/foundation/validators/not_empty.js +33 -0
  414. data/frameworks/sproutcore/frameworks/foundation/validators/number.js +82 -0
  415. data/frameworks/sproutcore/frameworks/foundation/validators/password.js +86 -0
  416. data/frameworks/sproutcore/frameworks/foundation/validators/validator.js +311 -0
  417. data/frameworks/sproutcore/frameworks/foundation/views/container.js +136 -0
  418. data/frameworks/sproutcore/frameworks/foundation/views/field.js +276 -0
  419. data/frameworks/sproutcore/frameworks/foundation/views/image.js +158 -0
  420. data/frameworks/sproutcore/frameworks/foundation/views/label.js +261 -0
  421. data/frameworks/sproutcore/frameworks/foundation/views/view.js +2160 -0
  422. data/frameworks/sproutcore/frameworks/mobile/english.lproj/core.css +12 -0
  423. data/frameworks/sproutcore/frameworks/mobile/lib/index.rhtml +126 -0
  424. data/frameworks/sproutcore/frameworks/mobile/system/root_responder.js +109 -0
  425. data/frameworks/sproutcore/frameworks/mobile/tests/views/button/ui.js +9 -0
  426. data/frameworks/sproutcore/frameworks/mobile/views/button.js +190 -0
  427. data/frameworks/sproutcore/frameworks/runtime/README +11 -0
  428. data/frameworks/sproutcore/frameworks/runtime/core.js +777 -0
  429. data/frameworks/sproutcore/frameworks/runtime/license.js +28 -0
  430. data/frameworks/sproutcore/frameworks/runtime/mixins/array.js +403 -0
  431. data/frameworks/sproutcore/frameworks/runtime/mixins/delegate_support.js +70 -0
  432. data/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +1193 -0
  433. data/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1149 -0
  434. data/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +135 -0
  435. data/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +108 -0
  436. data/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +128 -0
  437. data/frameworks/sproutcore/frameworks/runtime/protocols/sparse_array_delegate.js +131 -0
  438. data/frameworks/sproutcore/frameworks/runtime/system/binding.js +891 -0
  439. data/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +107 -0
  440. data/frameworks/sproutcore/frameworks/runtime/system/object.js +783 -0
  441. data/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +99 -0
  442. data/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +214 -0
  443. data/frameworks/sproutcore/frameworks/runtime/system/set.js +246 -0
  444. data/frameworks/sproutcore/frameworks/runtime/system/sparse_array.js +286 -0
  445. data/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +56 -0
  446. data/frameworks/sproutcore/frameworks/runtime/tests/core/beget.js +23 -0
  447. data/frameworks/sproutcore/frameworks/runtime/tests/core/clone.js +66 -0
  448. data/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +147 -0
  449. data/frameworks/sproutcore/frameworks/runtime/tests/core/inspect.js +27 -0
  450. data/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +25 -0
  451. data/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +38 -0
  452. data/frameworks/sproutcore/frameworks/runtime/tests/core/keys.js +20 -0
  453. data/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +30 -0
  454. data/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +19 -0
  455. data/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +37 -0
  456. data/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +592 -0
  457. data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +467 -0
  458. data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +123 -0
  459. data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/registerDependentKeys.js +79 -0
  460. data/frameworks/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js +80 -0
  461. data/frameworks/sproutcore/frameworks/runtime/tests/system/array.js +263 -0
  462. data/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +190 -0
  463. data/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +135 -0
  464. data/frameworks/sproutcore/frameworks/runtime/tests/system/object/bindings.js +339 -0
  465. data/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +120 -0
  466. data/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +313 -0
  467. data/frameworks/sproutcore/frameworks/runtime/tests/system/sparse_array.js +84 -0
  468. data/frameworks/sproutcore/frameworks/testing/core.js +13 -0
  469. data/frameworks/sproutcore/frameworks/testing/english.lproj/additions.css +8 -0
  470. data/frameworks/sproutcore/frameworks/testing/english.lproj/testsuite.css +131 -0
  471. data/frameworks/sproutcore/frameworks/testing/extras.js +43 -0
  472. data/frameworks/sproutcore/frameworks/testing/jquery.js +3559 -0
  473. data/frameworks/sproutcore/frameworks/testing/qunit.js +819 -0
  474. data/frameworks/sproutcore/frameworks/testing/tests/debug/qunit.js +25 -0
  475. data/frameworks/sproutcore/frameworks/testing/utils.js +55 -0
  476. data/frameworks/sproutcore/lib/index.rhtml +118 -0
  477. data/frameworks/sproutcore/license.js +28 -0
  478. data/frameworks/sproutcore/themes/empty_theme/tests/mini_icons.rhtml +69 -0
  479. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/button.css +41 -0
  480. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +8 -0
  481. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/backButton.png +0 -0
  482. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/blueButton.png +0 -0
  483. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/cancel.png +0 -0
  484. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/grayButton.png +0 -0
  485. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/leftButton.png +0 -0
  486. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listArrow.png +0 -0
  487. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listArrowSel.png +0 -0
  488. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listGroup.png +0 -0
  489. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/loading.gif +0 -0
  490. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/pinstripes.png +0 -0
  491. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/rightButton.png +0 -0
  492. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/selection.png +0 -0
  493. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/thumb.png +0 -0
  494. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toggle.png +0 -0
  495. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toggleOn.png +0 -0
  496. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toolButton.png +0 -0
  497. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toolbar.png +0 -0
  498. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/whiteButton.png +0 -0
  499. data/frameworks/sproutcore/themes/iphone_theme/english.lproj/strings.js +15 -0
  500. data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/Data +0 -0
  501. data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Preview.jpg +0 -0
  502. data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Thumbnail.jpg +0 -0
  503. data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/Data +0 -0
  504. data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Preview.jpg +0 -0
  505. data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Thumbnail.jpg +0 -0
  506. data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/Data +0 -0
  507. data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Preview.jpg +0 -0
  508. data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Thumbnail.jpg +0 -0
  509. data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/Data +0 -0
  510. data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Preview.jpg +0 -0
  511. data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Thumbnail.jpg +0 -0
  512. data/frameworks/sproutcore/themes/standard_theme/english.lproj/button.css +333 -0
  513. data/frameworks/sproutcore/themes/standard_theme/english.lproj/checkbox.css +90 -0
  514. data/frameworks/sproutcore/themes/standard_theme/english.lproj/collection.css +53 -0
  515. data/frameworks/sproutcore/themes/standard_theme/english.lproj/core.css +47 -0
  516. data/frameworks/sproutcore/themes/standard_theme/english.lproj/disclosure.css +55 -0
  517. data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-sprite.png +0 -0
  518. data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-ysprite.png +0 -0
  519. data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-toolbar-view.png +0 -0
  520. data/frameworks/sproutcore/themes/standard_theme/english.lproj/label.css +37 -0
  521. data/frameworks/sproutcore/themes/standard_theme/english.lproj/pane.css +8 -0
  522. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/background-fat.jpg +0 -0
  523. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/background-thin.jpg +0 -0
  524. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-edge.png +0 -0
  525. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-left-corner.png +0 -0
  526. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-right-corner.png +0 -0
  527. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/left-edge.png +0 -0
  528. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/overlay.png +0 -0
  529. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/right-edge.png +0 -0
  530. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-edge.png +0 -0
  531. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-left-corner.png +0 -0
  532. data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-right-corner.png +0 -0
  533. data/frameworks/sproutcore/themes/standard_theme/english.lproj/progress.css +23 -0
  534. data/frameworks/sproutcore/themes/standard_theme/english.lproj/radio.css +113 -0
  535. data/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +141 -0
  536. data/frameworks/sproutcore/themes/standard_theme/english.lproj/slider.css +62 -0
  537. data/frameworks/sproutcore/themes/standard_theme/english.lproj/split_view.css +27 -0
  538. data/frameworks/sproutcore/themes/standard_theme/english.lproj/tab.css +12 -0
  539. data/frameworks/sproutcore/themes/standard_theme/english.lproj/text_field.css +13 -0
  540. data/frameworks/sproutcore/themes/standard_theme/english.lproj/toolbar.css +4 -0
  541. data/lib/thor/.autotest +7 -0
  542. data/lib/thor/CHANGELOG.rdoc +52 -0
  543. data/lib/thor/LICENSE +20 -0
  544. data/lib/thor/README.markdown +76 -0
  545. data/lib/thor/Rakefile +6 -0
  546. data/lib/thor/Thorfile +45 -0
  547. data/lib/thor/bin/rake2thor +83 -0
  548. data/lib/thor/bin/thor +7 -0
  549. data/lib/thor/lib/thor/error.rb +3 -0
  550. data/lib/thor/lib/thor/options.rb +267 -0
  551. data/lib/thor/lib/thor/ordered_hash.rb +64 -0
  552. data/lib/thor/lib/thor/runner.rb +305 -0
  553. data/lib/thor/lib/thor/task.rb +83 -0
  554. data/lib/thor/lib/thor/task_hash.rb +22 -0
  555. data/lib/thor/lib/thor/tasks/package.rb +18 -0
  556. data/lib/thor/lib/thor/tasks.rb +77 -0
  557. data/lib/thor/lib/thor/util.rb +75 -0
  558. data/lib/thor/lib/thor.rb +170 -0
  559. data/lib/thor/script/destroy +14 -0
  560. data/lib/thor/script/generate +14 -0
  561. data/lib/thor/spec/fixtures/task.thor +10 -0
  562. data/lib/thor/spec/options_spec.rb +271 -0
  563. data/lib/thor/spec/ordered_hash_spec.rb +84 -0
  564. data/lib/thor/spec/spec.opts +1 -0
  565. data/lib/thor/spec/spec_helper.rb +30 -0
  566. data/lib/thor/spec/task_spec.rb +11 -0
  567. data/lib/thor/spec/tasks_spec.rb +28 -0
  568. data/lib/thor/spec/thor_runner_spec.rb +194 -0
  569. data/lib/thor/spec/thor_spec.rb +206 -0
  570. data/lib/thor/spec/util_spec.rb +99 -0
  571. data/lib/thor/task.thor +15 -0
  572. data/lib/thor/thor.gemspec +29 -0
  573. metadata +3 -4
  574. data/sproutcore.gemspec +0 -47
@@ -0,0 +1,240 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
4
+ // portions copyright @2009 Apple, Inc.
5
+ // License: Licened under MIT license (see license.js)
6
+ // ==========================================================================
7
+
8
+ /*global module test htmlbody ok equals same stop start */
9
+
10
+ htmlbody('<style> .sc-static-layout { border: 1px red dotted; } </style>');
11
+ (function() {
12
+ var pane = SC.ControlTestPane.design()
13
+
14
+ .add("progress basic", SC.ProgressView, {
15
+ value: 25,
16
+ minimum: 0,
17
+ maximum: 100
18
+ })
19
+ .add("progress disabled", SC.ProgressView, {
20
+ value: 25,
21
+ minimum: 0,
22
+ maximum: 100,
23
+ isEnabled: NO
24
+ })
25
+ .add("progress basic value 0", SC.ProgressView, {
26
+ value: 0,
27
+ minimum: 0,
28
+ maximum: 100
29
+ })
30
+ .add("progress basic value 100", SC.ProgressView, {
31
+ value: 100,
32
+ minimum: 0,
33
+ maximum: 100
34
+ })
35
+ .add("progress basic max 50", SC.ProgressView, {
36
+ value: 25,
37
+ minimum: 0,
38
+ maximum: 50
39
+ })
40
+
41
+ // Slider View UI
42
+ .add("slider basic", SC.SliderView, {
43
+ value: 50,
44
+ minimum: 0,
45
+ maximum: 100
46
+ })
47
+ .add("slider disabled", SC.SliderView, {
48
+ value: 50,
49
+ minimum: 0,
50
+ maximum: 100,
51
+ isEnabled: NO
52
+ })
53
+ .add("slider value 100", SC.SliderView, {
54
+ value: 100,
55
+ minimum: 0,
56
+ maximum: 100
57
+ })
58
+ .add("slider basic step 20", SC.SliderView, {
59
+ value: 50,
60
+ minimum: 0,
61
+ maximum: 100,
62
+ step: 20
63
+ });
64
+
65
+ pane.show(); // add a test to show the test pane
66
+
67
+ // ..........................................................
68
+ // TEST VIEWS
69
+ //
70
+ module("SC.ProgressView UI");
71
+
72
+ test("basic", function() {
73
+
74
+ var view = pane.view('progress basic');
75
+
76
+ ok(!view.$().hasClass('disabled'), 'should NOT have disabled class');
77
+ ok(view.$('.sc-inner'), 'should have sc-inner class');
78
+ ok(view.$('.sc-outer-head'), 'should have sc-outer-head class');
79
+ ok(view.$('.sc-outer-tail'), 'should have sc-outer-tail class');
80
+ ok(view.$('.sc-inner-head'), 'should have sc-inner-head class');
81
+ ok(view.$('.sc-inner-tail'), 'should have sc-inner-tail class');
82
+ equals(view.$('.sc-inner').css("width"), "25%", 'width should be 25%');
83
+ equals(view.$('.sc-inner').width(), 78, 'pixel width ');
84
+
85
+ });
86
+
87
+ test("disabled", function() {
88
+
89
+ var view = pane.view('progress disabled');
90
+
91
+ ok(view.$().hasClass('disabled'), 'should have disabled class');
92
+ ok(view.$('.sc-inner'), 'should have sc-inner class');
93
+ equals(view.$('.sc-inner').css("width"), "0%", 'width should be 0%');
94
+ equals(view.$('.sc-inner').width(), 0, 'pixel width ');
95
+
96
+ });
97
+
98
+ test("basic value 0", function() {
99
+
100
+ var view = pane.view('progress basic value 0');
101
+
102
+ ok(!view.$().hasClass('disabled'), 'should NOT have disabled class');
103
+ ok(view.$('.sc-inner'), 'should have sc-inner class');
104
+ equals(view.$('.sc-inner').css("width"), "0%", 'width should be 0%');
105
+ equals(view.$('.sc-inner').width(), 0, 'pixel width ');
106
+
107
+ });
108
+
109
+ test("basic value 100", function() {
110
+
111
+ var view = pane.view('progress basic value 100');
112
+
113
+ ok(!view.$().hasClass('disabled'), 'should NOT have disabled class');
114
+ ok(view.$('.sc-inner'), 'should have sc-inner class');
115
+ equals(view.$('.sc-inner').css("width"), "100%", 'width should be 100%');
116
+ equals(view.$('.sc-inner').width(), 314, 'pixel width ');
117
+
118
+ });
119
+
120
+ test("basic max 50", function() {
121
+
122
+ var view = pane.view('progress basic max 50');
123
+
124
+ ok(!view.$().hasClass('disabled'), 'should NOT have disabled class');
125
+ ok(view.$('.sc-inner'), 'should have sc-inner class');
126
+ equals(view.$('.sc-inner').css("width"), "50%", 'width should be 50%');
127
+ equals(view.$('.sc-inner').width(), 157, 'pixel width ');
128
+
129
+ });
130
+
131
+ // ..........................................................
132
+ // TEST CHANGING PROGRESS BARS
133
+ //
134
+
135
+ test("changing value from empty -> value", function() {
136
+ var view = pane.view('progress basic value 0');
137
+
138
+ equals(view.$('.sc-inner').width(), 0, 'precon - pixel width should be 0');
139
+ SC.RunLoop.begin();
140
+ view.set('value', 50);
141
+ SC.RunLoop.end();
142
+ equals(view.$('.sc-inner').css("width"), "50%", 'width should be 50%');
143
+ equals(view.$('.sc-inner').width(), 157, 'pixel width ');
144
+ });
145
+
146
+ test("changing value from full -> empty", function() {
147
+ var view = pane.view('progress basic value 100');
148
+
149
+ equals(view.$('.sc-inner').width(), 314, 'precon - pixel width should be 316');
150
+ SC.RunLoop.begin();
151
+ view.set('value', 0);
152
+ SC.RunLoop.end();
153
+ equals(view.$('.sc-inner').css("width"), "0%", 'width should be 0%');
154
+ equals(view.$('.sc-inner').width(), 0, 'pixel width ');
155
+ });
156
+
157
+
158
+ test("changing value from full -> negative number", function() {
159
+ var view = pane.view('progress basic value 100');
160
+
161
+ SC.RunLoop.begin();
162
+ view.set('value', 100);
163
+ SC.RunLoop.end();
164
+
165
+ equals(view.$('.sc-inner').width(), 314, 'precon - pixel width should be 316');
166
+ SC.RunLoop.begin();
167
+ view.set('value', -10);
168
+ SC.RunLoop.end();
169
+ equals(view.$('.sc-inner').css("width"), "0%", 'width should be 0%');
170
+ equals(view.$('.sc-inner').width(), 0, 'pixel width ');
171
+ });
172
+
173
+ test("changing value to over maximum", function() {
174
+ var view = pane.view('progress basic');
175
+
176
+ equals(view.$('.sc-inner').width(), 78, 'precon - pixel width should be 79');
177
+ SC.RunLoop.begin();
178
+ view.set('value', 110);
179
+ SC.RunLoop.end();
180
+ equals(view.$('.sc-inner').css("width"), "100%", 'width should be 100%');
181
+ equals(view.$('.sc-inner').width(), 314, 'pixel width ');
182
+ });
183
+
184
+ test("changing value to a string", function() {
185
+ var view = pane.view('progress basic');
186
+
187
+ SC.RunLoop.begin();
188
+ view.set('value', 25);
189
+ SC.RunLoop.end();
190
+ equals(view.$('.sc-inner').width(), 78, 'precon - pixel width should be 79');
191
+ SC.RunLoop.begin();
192
+ view.set('value', 'aString');
193
+ SC.RunLoop.end();
194
+ equals(view.$('.sc-inner').css("width"), "0%", 'width should be 0%');
195
+ equals(view.$('.sc-inner').width(), 0, 'pixel width ');
196
+ });
197
+
198
+
199
+ // ..........................................................
200
+ // SC.SliderView
201
+ //
202
+
203
+ module("SC.SliderView UI");
204
+
205
+ test("basic", function() {
206
+ var view = pane.view('slider basic');
207
+
208
+ ok(!view.$().hasClass('disabled'), 'should NOT have disabled class');
209
+ ok(view.$('.sc-inner'), 'should have sc-inner class');
210
+ ok(view.$('.sc-handle'), 'should have sc-handle class');
211
+ equals(view.$('.sc-handle').css('left'), '50%', 'left of sc-handle should be 50%');
212
+ });
213
+
214
+ test("disabled", function() {
215
+ var view = pane.view('slider disabled');
216
+
217
+ ok(view.$().hasClass('disabled'), 'should have disabled class');
218
+ ok(view.$('.sc-inner'), 'should have sc-inner class');
219
+ ok(view.$('.sc-handle'), 'should have sc-handle class');
220
+ equals(view.$('.sc-handle').css('left'), '50%', 'left of sc-handle should be 50%');
221
+ });
222
+
223
+ test("basic value 100", function() {
224
+ var view = pane.view('slider value 100');
225
+
226
+ ok(!view.$().hasClass('disabled'), 'should have disabled class');
227
+ ok(view.$('.sc-inner'), 'should have sc-inner class');
228
+ ok(view.$('.sc-handle'), 'should have sc-handle class');
229
+ equals(view.$('.sc-handle').css('left'), '100%', 'left of sc-handle should be 100%');
230
+ });
231
+
232
+ test("basic step 20", function() {
233
+ var view = pane.view('slider basic step 20');
234
+
235
+ ok(!view.$().hasClass('disabled'), 'should have disabled class');
236
+ ok(view.$('.sc-inner'), 'should have sc-inner class');
237
+ ok(view.$('.sc-handle'), 'should have sc-handle class');
238
+ equals(view.$('.sc-handle').css('left'), '60%', 'left of sc-handle should be 60%');
239
+ });
240
+ })();
@@ -0,0 +1,113 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
4
+ // portions copyright @2009 Apple, Inc.
5
+ // License: Licened under MIT license (see license.js)
6
+ // ==========================================================================
7
+
8
+ /*global module test htmlbody ok equals same stop start */
9
+
10
+ var pane, view ;
11
+ module("SC.RadioView Logic", {
12
+ setup: function() {
13
+ SC.RunLoop.begin();
14
+ pane = SC.MainPane.create({
15
+ childViews: [
16
+ SC.RadioView.extend({
17
+ layout: { right: 20, bottom: 20, width: 100, height: 23 },
18
+ items: 'Red Green'.w(),
19
+ value: 'Red',
20
+ isEnabled: YES
21
+ })]
22
+ });
23
+ pane.append(); // make sure there is a layer...
24
+ SC.RunLoop.end();
25
+
26
+ view = pane.childViews[0];
27
+ },
28
+
29
+ teardown: function() {
30
+ pane.remove();
31
+ pane = view = null ;
32
+ }
33
+ });
34
+
35
+ test("renders an input tag with appropriate attributes", function() {
36
+ equals(view.get('value'), 'Red', 'precon - value should be YES');
37
+
38
+ var q = Q$('input', view.get('layer'));
39
+ equals(q.attr('type'), 'radio', 'should have type=radio');
40
+ equals(q.attr('name'), SC.guidFor(view), 'should have name=view_guid');
41
+ equals(q.attr('checked'), YES, 'should be checked');
42
+ });
43
+
44
+ test("changing the value should update the group", function() {
45
+ var oldValue = view.get('value');
46
+ SC.RunLoop.begin();
47
+ view.set('value', 'Green');
48
+ SC.RunLoop.end();
49
+
50
+ ok(view.get('value') !== oldValue, 'precond - should have changed value');
51
+ var q = Q$('.sel > span', view.get('layer'));
52
+ equals(q.text(), view.get('value'), 'label should have new value');
53
+ });
54
+
55
+ test("isEnabled should alter group classname and sync with isEnabled property", function() {
56
+
57
+ // check initial render state
58
+ ok(view.get('isEnabled'), 'isEnabled should match value');
59
+ ok(!view.$().hasClass('disabled'), 'should NOT have disabled class');
60
+
61
+ // update value -- make sure isEnabled changes.
62
+ SC.RunLoop.begin();
63
+ view.set('isEnabled', 0); // make falsy. (but not NO exactly)
64
+ SC.RunLoop.end();
65
+
66
+ ok(!view.get('isEnabled'), 'isEnabled should now be NO');
67
+ ok(view.$().hasClass('disabled'), 'should have disabled class');
68
+
69
+ // update isEnabled -- make sure it edits the value
70
+ SC.RunLoop.begin();
71
+ view.set('isEnabled', YES);
72
+ SC.RunLoop.end();
73
+
74
+ ok(view.get('isEnabled'), 'isEnabled should match value');
75
+ ok(!view.$().hasClass('disabled'), 'should NOT have disabled class');
76
+ });
77
+
78
+ test("clicking on a radio button will change toggle the value", function() {
79
+ equals(view.get('value'), 'Red', 'precond - value should be Red');
80
+ view.$('input').get(1).click();
81
+ equals(view.get('value'), 'Green', 'value should have changed');
82
+ });
83
+
84
+ test("pressing mouseDown and then mouseUp anywhere in a radio button should toggle the selection", function() {
85
+ var elem = view.get('layer'), input = SC.$('input', elem);
86
+
87
+ SC.Event.trigger(elem, 'mousedown');
88
+ ok(view.get('isActive'), 'view should be active');
89
+ equals(view.get('value'), 'Red', 'value should not change yet');
90
+
91
+ // simulate mouseUp and browser-native change to control
92
+ SC.Event.trigger(elem,'mouseup');
93
+ input.attr('checked', NO);
94
+ // loose focus of the element since it was changed
95
+ SC.Event.trigger(input.get(1),'change');
96
+
97
+ ok(!view.get('isActive'), 'view should no longer be active');
98
+ equals(view.get('value'), undefined, 'value should be undefined (none checked)');
99
+
100
+ input = elem = null ;
101
+ });
102
+
103
+ test("isEnabled=NO should add disabled attr to input", function() {
104
+ SC.RunLoop.begin();
105
+ view.set('isEnabled', NO);
106
+ SC.RunLoop.end();
107
+
108
+ ok(view.$input().attr('disabled'), 'should have disabled attr');
109
+
110
+ ok(view.get('value'), 'precond - value should be true');
111
+ view.$input().get(1).click();
112
+ ok(view.get('value'), 'value should not change when clicked');
113
+ });
@@ -0,0 +1,202 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
4
+ // portions copyright @2009 Apple, Inc.
5
+ // License: Licened under MIT license (see license.js)
6
+ // ==========================================================================
7
+
8
+ /*global module test htmlbody ok equals same stop start */
9
+
10
+ htmlbody('<style> .sc-static-layout { border: 1px red dotted; } </style>');
11
+
12
+ var itemList = [{ title: "Red", value: "red", enabled: YES }, { title: "Green", value: "green" }, { title: "Blue", value: "blue" }];
13
+
14
+ var pane = SC.ControlTestPane.design()
15
+ .add("basic", SC.RadioView, {
16
+ value: "",
17
+ isEnabled: YES,
18
+ items: itemList,
19
+ itemTitleKey: 'title',
20
+ itemValueKey: 'value',
21
+ layoutDirection: SC.LAYOUT_HORIZONTAL
22
+ })
23
+
24
+ .add("checked", SC.RadioView, {
25
+ value: "red",
26
+ isEnabled: YES,
27
+ items: itemList,
28
+ itemTitleKey: 'title',
29
+ itemValueKey: 'value',
30
+ layoutDirection: SC.LAYOUT_HORIZONTAL
31
+ })
32
+
33
+ .add("disabled", SC.RadioView, {
34
+ value: "",
35
+ isEnabled: NO,
36
+ items: itemList,
37
+ itemTitleKey: 'title',
38
+ itemValueKey: 'value',
39
+ layoutDirection: SC.LAYOUT_HORIZONTAL
40
+ })
41
+
42
+ .add("enabled first", SC.RadioView, {
43
+ value: "",
44
+ isEnabled: YES,
45
+ items: itemList,
46
+ itemTitleKey: 'title',
47
+ itemValueKey: 'value',
48
+ itemIsEnabledKey: 'enabled',
49
+ layoutDirection: SC.LAYOUT_HORIZONTAL
50
+ })
51
+
52
+ .add("horizontal", SC.RadioView, {
53
+ value: "",
54
+ isEnabled: YES,
55
+ items: 'Yes No'.w(),
56
+ // LAYOUT_VERTICAL is default
57
+ layoutDirection: SC.LAYOUT_HORIZONTAL
58
+ });
59
+
60
+ pane.show(); // add a test to show the test pane
61
+
62
+ // ..........................................................
63
+ // TEST VIEWS
64
+ //
65
+ module('SC.RadioView UI');
66
+
67
+ test("basic", function() {
68
+
69
+ var view = pane.view('basic');
70
+
71
+ ok(!view.$().hasClass('disabled'), 'should not have disabled class');
72
+
73
+ var radioButtons = view.$('input');
74
+ equals(radioButtons.length, 3, 'number of radio buttons should be 3');
75
+
76
+ var i = 0;
77
+ radioButtons.forEach(function(radioInput) {
78
+ var theInput = SC.$(radioInput),
79
+ idx = parseInt(theInput.val(),0),
80
+ buttonValue = theInput.attr('value');
81
+
82
+ equals(idx, i, 'radio button #%@ should have field value %@'.fmt(idx, i));
83
+
84
+ ok(!theInput.attr('checked'), 'radio button #%@ should not be checked'.fmt(idx));
85
+ ok(!theInput.attr('disabled'), 'radio button #%@ should not be disabled'.fmt(idx));
86
+
87
+ i++;
88
+ });
89
+
90
+ var labels = view.$('span.sc-button-label');
91
+ equals(labels.length, 3, 'number of labels should be 3');
92
+
93
+ var idx = 0;
94
+ labels.forEach(function(label) {
95
+ equals(label.innerHTML, itemList[idx].title, 'radio button #%@ should have original label'.fmt(idx));
96
+ idx++;
97
+ });
98
+
99
+ });
100
+
101
+
102
+ test("checked", function() {
103
+ var view = pane.view('checked');
104
+
105
+ ok(!view.$().hasClass('disabled'), 'should not have disabled class');
106
+
107
+ var radioButtons = view.$('input');
108
+ equals(radioButtons.length, 3, 'number of radio buttons should be 3');
109
+
110
+ var i = 0;
111
+ radioButtons.forEach(function(radioInput) {
112
+ var theInput = SC.$(radioInput),
113
+ idx = parseInt(theInput.val(),0),
114
+ buttonValue = theInput.attr('value');
115
+
116
+ equals(idx, i, 'radio button #%@ should have field value %@'.fmt(idx, i));
117
+ if(idx==0) {
118
+ ok(theInput.attr('checked'), 'radio button #%@ should be checked'.fmt(idx));
119
+ } else {
120
+ ok(!theInput.attr('checked'), 'radio button #%@ should not be checked'.fmt(idx));
121
+ }
122
+
123
+ ok(!theInput.attr('disabled'), 'radio button #%@ should not be disabled'.fmt(idx));
124
+ i++;
125
+ });
126
+
127
+ var labels = view.$('span.sc-button-label');
128
+ equals(labels.length, 3, 'number of labels should be 3');
129
+
130
+ var idx = 0;
131
+ labels.forEach(function(label) {
132
+ equals(label.innerHTML, itemList[idx].title, 'radio button #%@ should have original label'.fmt(idx));
133
+ idx++;
134
+ });
135
+
136
+ });
137
+
138
+ test("disabled", function() {
139
+ var view = pane.view('disabled');
140
+
141
+ ok(view.$().hasClass('disabled'), 'should have disabled class');
142
+
143
+ var radioButtons = view.$('input');
144
+ equals(radioButtons.length, 3, 'number of radio buttons should be 3');
145
+
146
+ var i = 0;
147
+ radioButtons.forEach(function(radioInput) {
148
+ var theInput = SC.$(radioInput),
149
+ idx = parseInt(theInput.val(),0),
150
+ buttonValue = theInput.attr('value');
151
+
152
+ equals(idx, i, 'radio button #%@ should have field value %@'.fmt(idx, i));
153
+ ok(!theInput.attr('checked'), 'radio button #%@ should not be checked'.fmt(idx));
154
+ ok(theInput.attr('disabled'), 'radio button #%@ should be disabled'.fmt(idx));
155
+ i++;
156
+ });
157
+
158
+ var labels = view.$('span.sc-button-label');
159
+ equals(labels.length, 3, 'number of labels should be 3');
160
+
161
+ var idx = 0;
162
+ labels.forEach(function(label) {
163
+ equals(label.innerHTML, itemList[idx].title, 'radio button #%@ should have original label'.fmt(idx));
164
+ idx++;
165
+ });
166
+
167
+ });
168
+
169
+ test("enabled first", function() {
170
+ var view = pane.view('enabled first');
171
+
172
+ ok(!view.$().hasClass('disabled'), 'should have disabled class');
173
+
174
+ var radioButtons = view.$('input');
175
+ equals(radioButtons.length, 3, 'number of radio buttons should be 3');
176
+
177
+ var i = 0;
178
+ radioButtons.forEach(function(radioInput) {
179
+ var theInput = SC.$(radioInput),
180
+ idx = parseInt(theInput.val(),0),
181
+ buttonValue = theInput.attr('value');
182
+
183
+ equals(idx, i, 'radio button #%@ should have field value %@'.fmt(idx, i));
184
+ ok(!theInput.attr('checked'), 'radio button #%@ should not be checked'.fmt(idx));
185
+ if(idx==0) {
186
+ ok(!theInput.attr('disabled'), 'radio button #%@ should not be disabled'.fmt(idx));
187
+ } else {
188
+ ok(theInput.attr('disabled'), 'radio button #%@ should be disabled'.fmt(idx));
189
+ }
190
+ i++;
191
+ });
192
+
193
+ var labels = view.$('span.sc-button-label');
194
+ equals(labels.length, 3, 'number of labels should be 3');
195
+
196
+ var idx = 0;
197
+ labels.forEach(function(label) {
198
+ equals(label.innerHTML, itemList[idx].title, 'radio button #%@ should have original label'.fmt(idx));
199
+ idx++;
200
+ });
201
+ });
202
+
@@ -0,0 +1,139 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
4
+ // portions copyright @2009 Apple, Inc.
5
+ // License: Licened under MIT license (see license.js)
6
+ // ==========================================================================
7
+
8
+ /*global module test htmlbody ok equals same stop start */
9
+
10
+ var pane, view ;
11
+ var appleURL='http://weblogs.baltimoresun.com/business/consuminginterests/blog/apple-logo1.jpg';
12
+ module("SC.ScrollView",{
13
+ setup: function() {
14
+ SC.RunLoop.begin();
15
+ pane = SC.MainPane.create({
16
+ childViews: [
17
+ SC.ScrollView.extend({
18
+ contentView: SC.ImageView.design({value: appleURL, layout: {height:400, width:400}})
19
+ }),
20
+ SC.ScrollView.extend({
21
+ contentView: SC.ImageView.design({value: appleURL, layout: {height:2000, width:2000}})
22
+ })
23
+
24
+ ],
25
+
26
+ expectedVertLine: function(line) {
27
+ var ret = view.get('verticalLineScroll')*line;
28
+ var alt = view.get('maximumVerticalScrollOffset');
29
+ ret = (ret > alt)? alt : ret;
30
+ return ret;
31
+ },
32
+ expectedHorzLine: function(line) {
33
+ var ret = view.get('horizontalLineScroll')*line;
34
+ var alt = view.get('maximumHorizontalScrollOffset');
35
+ ret = (ret > alt)? alt : ret;
36
+ return ret;
37
+ },
38
+ expectedVertPage: function(page) {
39
+ var ret = view.get('verticalPageScroll')*line;
40
+ var alt = view.get('maximumVerticalScrollOffset');
41
+ ret = (ret > alt)? alt : ret;
42
+ return ret;
43
+ },
44
+ expectedHorzPage: function(page) {
45
+ var ret = view.get('horizontalPageScroll')*line;
46
+ var alt = view.get('maximumHorizontalScrollOffset');
47
+ ret = (ret > alt)? alt : ret;
48
+ return ret;
49
+ }
50
+ });
51
+
52
+
53
+ pane.append(); // make sure there is a layer...
54
+ SC.RunLoop.end();
55
+ view = pane.childViews[0];
56
+ view.get('containerView').get('frame').height = 100;
57
+ view.get('containerView').get('frame').width = 100;
58
+
59
+ view2 = pane.childViews[1];
60
+ view2.get('containerView').get('frame').height = 100;
61
+ view2.get('containerView').get('frame').width = 100;
62
+
63
+ },
64
+
65
+ teardown: function() {
66
+ pane.remove();
67
+ pane = view = null ;
68
+ }
69
+ });
70
+
71
+
72
+
73
+ test("Scrolling to a certain co-ordinate of the container view", function() {
74
+ equals(view.get('horizontalScrollOffset'), 0, "Initial horizontal offset must be zero");
75
+ equals(view.get('verticalScrollOffset'), 0, "Initial vertical offset must be zero");
76
+ view.scrollTo(100, 100);
77
+ equals(view.get('horizontalScrollOffset'), 100, "After scrolling to 100, horizontal offset must be");
78
+ equals(view.get('verticalScrollOffset'), 100, "After scrolling to 100, vertical offset must be");
79
+ view.scrollTo(400, 400);
80
+ equals(view.get('horizontalScrollOffset'), view.get('maximumHorizontalScrollOffset'), "After scrolling to 400, horizontal offset must be maximum");
81
+ equals(view.get('verticalScrollOffset'), view.get('maximumVerticalScrollOffset'), "After scrolling to 400, vertical offset must be maximum");
82
+ });
83
+
84
+ test("Scrolling relative to the current possition of the container view", function() {
85
+ equals(view.get('horizontalScrollOffset'), 0, "Initial horizontal offset must be zero");
86
+ equals(view.get('verticalScrollOffset'), 0, "Initial vertical offset must be zero");
87
+ view.scrollBy(100, 100);
88
+ equals(view.get('horizontalScrollOffset'), 100, "After scrolling by 100, horizontal offset must be");
89
+ equals(view.get('verticalScrollOffset'), 100, "After scrolling by 100, vertical offset must be");
90
+ view.scrollBy(100, 100);
91
+ equals(view.get('horizontalScrollOffset'), 200, "After scrolling by 100, horizontal offset must be");
92
+ equals(view.get('verticalScrollOffset'), 200, "After scrolling by 100, vertical offset must be");
93
+ view.scrollBy(400, 400);
94
+ equals(view.get('horizontalScrollOffset'), view.get('maximumHorizontalScrollOffset'), "After scrolling by 400, horizontal offset must be maximum");
95
+ equals(view.get('verticalScrollOffset'), view.get('maximumVerticalScrollOffset'), "After scrolling by 400, vertical offset must be maximum");
96
+ });
97
+
98
+ test("Scrolling through line by line", function() {
99
+ var line = 3;
100
+ equals(view.get('horizontalScrollOffset'), 0, "Initial horizontal offset must be zero");
101
+ equals(view.get('verticalScrollOffset'), 0, "Initial vertical offset must be zero");
102
+ view.scrollDownLine(line);
103
+ equals(view.get('horizontalScrollOffset'), 0, "After scrolling down by lines, horizontal offset is unchanged");
104
+ equals(view.get('verticalScrollOffset'), pane.expectedVertLine(line), "After scrolling down by lines, vertical offset must be");
105
+ view.scrollUpLine(line);
106
+ });
107
+
108
+ test("maximumHorizontalScrollOffset() returns the maximum horizontal scroll dimention", function() {
109
+ var old_horizontalScrollOffset=2;
110
+ var old_verticalScrollOffset=2;
111
+
112
+ view2.set('horizontalScrollOffset',old_horizontalScrollOffset);
113
+ view2.set('verticalScrollOffset',old_verticalScrollOffset);
114
+ view2.scrollRightPage(3);
115
+ equals(view2.get('horizontalScrollOffset'),1900, 'maximum y coordinate should be 1900');
116
+
117
+ view2.set('horizontalScrollOffset',old_horizontalScrollOffset);
118
+ view2.set('verticalScrollOffset',old_verticalScrollOffset);
119
+ view2.scrollLeftPage(3);
120
+ equals(view2.get('horizontalScrollOffset'),0, 'minimum y coordinate should be 0');
121
+
122
+ });
123
+
124
+
125
+ test("maximumVerticalScrollOffset() returns the maximum vertical scroll dimention", function() {
126
+ var old_horizontalScrollOffset=2;
127
+ var old_verticalScrollOffset=2;
128
+
129
+ view2.set('horizontalScrollOffset',old_horizontalScrollOffset);
130
+ view2.set('verticalScrollOffset',old_verticalScrollOffset);
131
+ view2.scrollDownPage(3);
132
+ equals(view2.get('verticalScrollOffset'),1900, 'maximum coordinate should be 1900');
133
+
134
+ view2.set('horizontalScrollOffset',old_horizontalScrollOffset);
135
+ view2.set('verticalScrollOffset',old_verticalScrollOffset);
136
+ view2.scrollUpPage(3);
137
+ equals(view2.get('verticalScrollOffset'),0, 'The minimum y coordinate should be 0');
138
+
139
+ });