sproutcore 1.5.0.pre.3 → 1.5.0.pre.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.rspec +1 -0
- data/CHANGELOG +42 -0
- data/README.txt +25 -0
- data/VERSION.yml +1 -1
- data/bin/sc-build +1 -1
- data/bin/sc-build-number +1 -1
- data/bin/sc-docs +1 -1
- data/bin/sc-gen +1 -1
- data/bin/sc-init +1 -1
- data/bin/sc-manifest +1 -1
- data/bin/sc-server +1 -1
- data/bin/sproutcore +1 -1
- data/lib/buildtasks/build.rake +5 -0
- data/lib/buildtasks/manifest.rake +20 -1
- data/lib/frameworks/sproutcore/Buildfile +12 -9
- data/lib/frameworks/sproutcore/CHANGELOG.md +48 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/README +2 -9
- data/lib/frameworks/sproutcore/apps/greenhouse/TODO +11 -27
- data/lib/frameworks/sproutcore/apps/greenhouse/controllers/library.js +3 -10
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/main-page.css +4 -31
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/dialogs.js +5 -4
- data/lib/frameworks/sproutcore/apps/greenhouse/models/dir.js +3 -3
- data/lib/frameworks/sproutcore/apps/greenhouse/models/file.js +2 -2
- data/lib/frameworks/sproutcore/apps/greenhouse/states/main.js +31 -14
- data/lib/frameworks/sproutcore/apps/greenhouse/states/modals.js +2 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/states/ready.js +27 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/tests/views/list_item.js +1 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/tests/views/plist_item.js +20 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/theme.js +25 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/views/plist_item.js +161 -24
- data/lib/frameworks/sproutcore/apps/greenhouse/views/tear_off_picker.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +37 -25
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +135 -26
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/controllers/array.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/controllers/controller.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/controllers/object.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/ext/object.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/ext/run_loop.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/delegate_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/responder_context.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/selection_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/string.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +68 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +108 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/panes/main.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/manipulation.js +27 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/panes/pane.js +215 -505
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +24 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +11 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/protocols/observable_protocol.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/protocols/sparse_array_delegate.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/resources/core.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/resources/view.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/application.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/browser.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/builder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/core_query.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/cursor.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +210 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/event.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/json.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/locale.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/page.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/platform.js +31 -5
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/ready.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/render_context.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/responder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/root_responder.js +83 -110
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/selection_set.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/sparse_array.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/theme.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/timer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/utils/rect.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +151 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/array_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/enum_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/null_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/selection_support.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/single_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/empty_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/multiple_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/single_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/single_enumerable_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/mixins/responder_context.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/mixins/string.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/builder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/core_query/within.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/json.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/locale.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/begin.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/element.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/end.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/get.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_attr.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_basic.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_className.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_style.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/init.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/join.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/push_text.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/tag.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/update.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/makeKeyPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/makeMainPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/makeMenuPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/root_responder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/targetForAction.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/add.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/copy.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/indexSetForSource.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/isEqual.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/remove.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/sparse_array.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/theme.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/invalidate.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/invokeLater.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/isPaused.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/performAction.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/schedule.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/utils/normalizeURL.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +268 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/utils/rect.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/append_remove.js +107 -18
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/firstResponder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/keyPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/layout.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/sendEvent.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/checkbox_support.js +32 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/text_field_support.js +73 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/collection.js +65 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/core.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/handlebars.js +295 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/animation.js +19 -18
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/build.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/build_children.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/clippingFrame.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/convertFrames.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/convertLayouts.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/createChildViews.js +18 -15
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/createLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/destroyLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/didAppendToDocument.js +11 -8
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/findLayerInParentLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/init.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/insertBefore.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/isVisible.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/isVisibleInWindow.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/layer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/layoutChildViews.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +180 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +640 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/parentViewDidChange.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/prepareContext.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/removeChild.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +125 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/render_delegate_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/replaceChild.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/static_layout.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/theme.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/updateLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/updateLayerLocation.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/viewDidResize.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/checkbox_support.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/collection.js +99 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/text_field_support.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +187 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/base.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +57 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +223 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +1150 -0
- data/lib/frameworks/sproutcore/frameworks/{amber/views → core_foundation/views/view}/layout_style.js +93 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +489 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +362 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/touch.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/visibility.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +1280 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +27 -53
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +13 -19
- data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +183 -71
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +26 -46
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +25 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +139 -21
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +6 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/cyclical_relationship.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/{parentless.js → data_store.js} +62 -16
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +51 -17
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +36 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/normalize.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/{foundation/english.lproj → datetime/resources}/strings.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → datetime}/system/datetime.js +5 -37
- data/lib/frameworks/sproutcore/frameworks/{foundation → datetime}/tests/system/datetime.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/designs.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/designer/designers/object_designer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/designer/designers/view_designer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/designer/views/designer_drop_target.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +71 -70
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +10 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +33 -14
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +25 -103
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +102 -92
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +22 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +38 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +42 -22
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +513 -230
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/README.md +23 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/README.md +11 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +215 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +34 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/polymorphic_single_attribute.js +183 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +23 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphic/single.js +124 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +151 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +27 -17
- data/lib/frameworks/sproutcore/frameworks/foundation/system/image_queue.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/system/logger.js +163 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/logger.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +200 -167
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +52 -137
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +7 -11
- data/lib/frameworks/sproutcore/frameworks/handlebars/extensions.js +138 -0
- data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +1338 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +32 -26
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +162 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +10 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +123 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +12 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +50 -13
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +163 -333
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +58 -8
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +9 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +15 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +31 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +31 -143
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/concatenated_properties.js +71 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +177 -0
- data/lib/frameworks/sproutcore/frameworks/table/views/table.js +5 -4
- data/lib/frameworks/sproutcore/frameworks/table/views/table_header.js +5 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/button/button.js +8 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +2 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +2 -2
- data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +62 -62
- data/lib/gen/html_app/Buildfile +36 -0
- data/lib/gen/html_app/README +1 -0
- data/lib/gen/html_app/USAGE +15 -0
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +14 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/images/.gitkeep +0 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +0 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +1 -0
- data/lib/gen/html_project/Buildfile +45 -0
- data/lib/gen/html_project/INIT +3 -0
- data/lib/gen/html_project/README +1 -0
- data/lib/gen/html_project/USAGE +2 -0
- data/lib/gen/html_project/templates/@filename@/Buildfile +8 -0
- data/lib/gen/html_project/templates/@filename@/README +7 -0
- data/lib/sproutcore/builders/handlebars.rb +30 -0
- data/lib/sproutcore/builders.rb +1 -1
- data/lib/sproutcore/helpers/static_helper.rb +3 -3
- data/lib/sproutcore/tools/init.rb +25 -9
- data/spec/buildtasks/manifest/prepare_build_tasks/handlebars_spec.rb +39 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/template.handlebars +5 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/templates/demo.handlebars +4 -0
- data/spec/lib/builders/handlebars_spec.rb +29 -0
- data/vendor/chance/lib/chance/imagers/data_url.rb +20 -7
- data/vendor/chance/lib/chance/instance.rb +4 -1
- data/vendor/chance/lib/chance/parser.rb +31 -31
- data/vendor/chance/lib/chance/slicing.rb +38 -8
- metadata +195 -225
- data/lib/frameworks/sproutcore/frameworks/amber/system/device.js +0 -143
- data/lib/frameworks/sproutcore/frameworks/amber/system/utils.js +0 -174
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/main_pane.js +0 -31
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/pane/sendTouchEvent.js +0 -267
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/layoutDidChange.js +0 -149
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/layoutStyle.js +0 -602
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/render.js +0 -115
- data/lib/frameworks/sproutcore/frameworks/amber/views/base.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/amber/views/view.js +0 -4003
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +0 -105
|
@@ -10,17 +10,17 @@ htmlbody('<div id="appendtest"></div>');
|
|
|
10
10
|
|
|
11
11
|
// ..........................................................
|
|
12
12
|
// appendTo()
|
|
13
|
-
//
|
|
13
|
+
//
|
|
14
14
|
module("SC.Pane#appendTo");
|
|
15
15
|
|
|
16
|
-
test("adding to document for first time", function() {
|
|
16
|
+
test("adding to document for first time - appendTo(elem)", function() {
|
|
17
17
|
var pane = SC.Pane.create();
|
|
18
18
|
ok(!pane.get('layer'), 'precond - does not yet have layer');
|
|
19
19
|
ok(!pane.get('isVisibleInWindow'), 'precond - isVisibleInWindow = NO');
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
var elem = Q$('body').get(0);
|
|
22
22
|
ok(elem, 'precond - found element to add to');
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
// now add
|
|
25
25
|
pane.appendTo(elem);
|
|
26
26
|
var layer = pane.get('layer');
|
|
@@ -28,9 +28,82 @@ test("adding to document for first time", function() {
|
|
|
28
28
|
equals(layer.parentNode, elem, 'layer should belong to parent');
|
|
29
29
|
ok(pane.get('isVisibleInWindow'), 'isVisibleInWindow should = YES');
|
|
30
30
|
ok(pane.rootResponder, 'should have rootResponder');
|
|
31
|
-
|
|
32
31
|
});
|
|
33
32
|
|
|
33
|
+
test("adding to document for first time - appendTo(string)", function() {
|
|
34
|
+
var pane = SC.Pane.create();
|
|
35
|
+
ok(!pane.get('layer'), 'precond - does not yet have layer');
|
|
36
|
+
ok(!pane.get('isVisibleInWindow'), 'precond - isVisibleInWindow = NO');
|
|
37
|
+
|
|
38
|
+
// now add
|
|
39
|
+
pane.appendTo("#appendtest");
|
|
40
|
+
var layer = pane.get('layer');
|
|
41
|
+
ok(layer, 'should create layer');
|
|
42
|
+
equals(layer.parentNode, jQuery("#appendtest")[0], 'layer should belong to parent');
|
|
43
|
+
ok(pane.get('isVisibleInWindow'), 'isVisibleInWindow should = YES');
|
|
44
|
+
ok(pane.rootResponder, 'should have rootResponder');
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test("adding to document for first time - appendTo(jquery)", function() {
|
|
48
|
+
var pane = SC.Pane.create();
|
|
49
|
+
ok(!pane.get('layer'), 'precond - does not yet have layer');
|
|
50
|
+
ok(!pane.get('isVisibleInWindow'), 'precond - isVisibleInWindow = NO');
|
|
51
|
+
|
|
52
|
+
// now add
|
|
53
|
+
pane.appendTo(jQuery("#appendtest"));
|
|
54
|
+
var layer = pane.get('layer');
|
|
55
|
+
ok(layer, 'should create layer');
|
|
56
|
+
equals(layer.parentNode, jQuery("#appendtest")[0], 'layer should belong to parent');
|
|
57
|
+
ok(pane.get('isVisibleInWindow'), 'isVisibleInWindow should = YES');
|
|
58
|
+
ok(pane.rootResponder, 'should have rootResponder');
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
test("adding to document for first time - prependTo(elem)", function() {
|
|
62
|
+
var pane = SC.Pane.create();
|
|
63
|
+
ok(!pane.get('layer'), 'precond - does not yet have layer');
|
|
64
|
+
ok(!pane.get('isVisibleInWindow'), 'precond - isVisibleInWindow = NO');
|
|
65
|
+
|
|
66
|
+
var elem = Q$('body').get(0);
|
|
67
|
+
ok(elem, 'precond - found element to add to');
|
|
68
|
+
|
|
69
|
+
// now add
|
|
70
|
+
pane.prependTo(elem);
|
|
71
|
+
var layer = pane.get('layer');
|
|
72
|
+
ok(layer, 'should create layer');
|
|
73
|
+
equals(layer.parentNode, elem, 'layer should belong to parent');
|
|
74
|
+
ok(pane.get('isVisibleInWindow'), 'isVisibleInWindow should = YES');
|
|
75
|
+
ok(pane.rootResponder, 'should have rootResponder');
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
test("adding to document for first time - prependTo(string)", function() {
|
|
79
|
+
var pane = SC.Pane.create();
|
|
80
|
+
ok(!pane.get('layer'), 'precond - does not yet have layer');
|
|
81
|
+
ok(!pane.get('isVisibleInWindow'), 'precond - isVisibleInWindow = NO');
|
|
82
|
+
|
|
83
|
+
// now add
|
|
84
|
+
pane.prependTo("#appendtest");
|
|
85
|
+
var layer = pane.get('layer');
|
|
86
|
+
ok(layer, 'should create layer');
|
|
87
|
+
equals(layer.parentNode, jQuery("#appendtest")[0], 'layer should belong to parent');
|
|
88
|
+
ok(pane.get('isVisibleInWindow'), 'isVisibleInWindow should = YES');
|
|
89
|
+
ok(pane.rootResponder, 'should have rootResponder');
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
test("adding to document for first time - prependTo(jquery)", function() {
|
|
93
|
+
var pane = SC.Pane.create();
|
|
94
|
+
ok(!pane.get('layer'), 'precond - does not yet have layer');
|
|
95
|
+
ok(!pane.get('isVisibleInWindow'), 'precond - isVisibleInWindow = NO');
|
|
96
|
+
|
|
97
|
+
// now add
|
|
98
|
+
pane.prependTo(jQuery("#appendtest"));
|
|
99
|
+
var layer = pane.get('layer');
|
|
100
|
+
ok(layer, 'should create layer');
|
|
101
|
+
equals(layer.parentNode, jQuery("#appendtest")[0], 'layer should belong to parent');
|
|
102
|
+
ok(pane.get('isVisibleInWindow'), 'isVisibleInWindow should = YES');
|
|
103
|
+
ok(pane.rootResponder, 'should have rootResponder');
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
|
|
34
107
|
test("adding a pane twice should have no effect", function() {
|
|
35
108
|
var cnt = 0;
|
|
36
109
|
var pane = SC.Pane.create();
|
|
@@ -39,7 +112,7 @@ test("adding a pane twice should have no effect", function() {
|
|
|
39
112
|
cnt++;
|
|
40
113
|
return this._tmp_paneDidAttach.apply(this, arguments);
|
|
41
114
|
};
|
|
42
|
-
|
|
115
|
+
|
|
43
116
|
pane.append();
|
|
44
117
|
pane.append();
|
|
45
118
|
equals(cnt, 1, 'should only append once');
|
|
@@ -49,12 +122,12 @@ test("readding pane", function() {
|
|
|
49
122
|
var pane = SC.Pane.create();
|
|
50
123
|
var elem1 = Q$('body').get(0), elem2 = Q$('#appendtest').get(0);
|
|
51
124
|
ok(elem1 && elem2, 'precond - has elem1 && elem2: elem1=%@ elem2=%@'.fmt(elem1, elem2));
|
|
52
|
-
|
|
125
|
+
|
|
53
126
|
pane.appendTo(elem1);
|
|
54
127
|
var layer = pane.get('layer');
|
|
55
128
|
ok(layer, 'has layer');
|
|
56
129
|
equals(layer.parentNode, elem1, 'layer belongs to parent');
|
|
57
|
-
|
|
130
|
+
|
|
58
131
|
pane.appendTo(elem2);
|
|
59
132
|
equals(layer.parentNode, elem2, 'layer moved to new parent');
|
|
60
133
|
ok(pane.get('isVisibleInWindow'), 'isVisibleInWindow should = YES');
|
|
@@ -65,7 +138,7 @@ test("adding/remove/adding pane", function() {
|
|
|
65
138
|
var pane = SC.Pane.create();
|
|
66
139
|
var elem1 = Q$('body').get(0), elem2 = Q$('#appendtest').get(0);
|
|
67
140
|
ok(elem1 && elem2, 'precond - has elem1 && elem2');
|
|
68
|
-
|
|
141
|
+
|
|
69
142
|
pane.appendTo(elem1);
|
|
70
143
|
var layer = pane.get('layer');
|
|
71
144
|
ok(layer, 'has layer');
|
|
@@ -73,17 +146,33 @@ test("adding/remove/adding pane", function() {
|
|
|
73
146
|
ok(pane.get('isVisibleInWindow'), 'isVisibleInWindow is YES before remove');
|
|
74
147
|
pane.remove();
|
|
75
148
|
ok(!pane.get('isVisibleInWindow'), 'isVisibleInWindow is NO');
|
|
76
|
-
|
|
149
|
+
|
|
77
150
|
pane.appendTo(elem2);
|
|
78
151
|
layer = pane.get('layer');
|
|
79
152
|
equals(layer.parentNode, elem2, 'layer moved to new parent');
|
|
80
153
|
ok(pane.get('isVisibleInWindow'), 'isVisibleInWindow should = YES');
|
|
81
154
|
ok(pane.rootResponder, 'should have rootResponder');
|
|
82
155
|
});
|
|
83
|
-
|
|
156
|
+
|
|
157
|
+
test("removeFromParent throws an exception", function() {
|
|
158
|
+
var pane, exceptionCaught = false;
|
|
159
|
+
|
|
160
|
+
try {
|
|
161
|
+
pane = SC.Pane.create();
|
|
162
|
+
pane.append();
|
|
163
|
+
pane.removeFromParent();
|
|
164
|
+
} catch(e) {
|
|
165
|
+
exceptionCaught = (e instanceof SC.Error);
|
|
166
|
+
} finally {
|
|
167
|
+
pane.remove();
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
ok(exceptionCaught, "trying to call removeFromParent on a pane throws an exception");
|
|
171
|
+
});
|
|
172
|
+
|
|
84
173
|
// ..........................................................
|
|
85
174
|
// remove()
|
|
86
|
-
//
|
|
175
|
+
//
|
|
87
176
|
module("SC.Pane#remove");
|
|
88
177
|
|
|
89
178
|
test("removes pane from DOM", function() {
|
|
@@ -94,7 +183,7 @@ test("removes pane from DOM", function() {
|
|
|
94
183
|
pane.appendTo(elem);
|
|
95
184
|
layer = pane.get('layer');
|
|
96
185
|
ok(elem, 'precond - found element to add to');
|
|
97
|
-
|
|
186
|
+
|
|
98
187
|
pane.remove();
|
|
99
188
|
ok(layer.parentNode !== elem, 'layer no longer belongs to parent');
|
|
100
189
|
ok(!pane.get('isVisibleInWindow'), 'isVisibleInWindow is NO');
|
|
@@ -103,14 +192,14 @@ test("removes pane from DOM", function() {
|
|
|
103
192
|
|
|
104
193
|
// ..........................................................
|
|
105
194
|
// SPECIAL CASES
|
|
106
|
-
//
|
|
195
|
+
//
|
|
107
196
|
|
|
108
197
|
test("updates frame and clippingFrame when loading MainPane", function() {
|
|
109
|
-
|
|
198
|
+
|
|
110
199
|
// needs a fixed layout size to make sure the sizes stay constant
|
|
111
|
-
var pane = SC.MainPane.create();
|
|
200
|
+
var pane = SC.MainPane.create();
|
|
112
201
|
var w = SC.RootResponder.responder.computeWindowSize().width;
|
|
113
|
-
|
|
202
|
+
|
|
114
203
|
// add the pane to the main window. should resize the frames
|
|
115
204
|
SC.run(function() {
|
|
116
205
|
pane.append();
|
|
@@ -119,6 +208,6 @@ test("updates frame and clippingFrame when loading MainPane", function() {
|
|
|
119
208
|
// should equal window size
|
|
120
209
|
equals(pane.get('frame').width, w, 'frame width should have changed');
|
|
121
210
|
equals(pane.get('clippingFrame').width, w, 'clippingFrame width should have changed');
|
|
122
|
-
|
|
211
|
+
|
|
123
212
|
});
|
|
124
213
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module("SC.Pane - childViews");
|
|
2
|
+
|
|
3
|
+
test("SC.Pane should not attempt to recompute visibility on child views that do not have visibility support", function() {
|
|
4
|
+
var pane = SC.Pane.create({
|
|
5
|
+
childViews: ['noVisibility'],
|
|
6
|
+
|
|
7
|
+
noVisibility: SC.CoreView
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
// tomdale insists on slowing down the tests with extra scope chain traversals
|
|
11
|
+
var errored = NO;
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
pane.append();
|
|
15
|
+
} catch(e) {
|
|
16
|
+
errored = YES;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
ok(!errored, "appending a pane with child views without visibility does not result in an error");
|
|
20
|
+
});
|
|
File without changes
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/keyPane.js
RENAMED
|
File without changes
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/layout.js
RENAMED
|
File without changes
|
data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/sendEvent.js
RENAMED
|
File without changes
|
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/checkbox_support.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
(function() {
|
|
2
|
+
var checkboxView, pane;
|
|
3
|
+
|
|
4
|
+
module("Checkbox Support", {
|
|
5
|
+
setup: function() {
|
|
6
|
+
checkboxView = SC.TemplateView.create(SC.CheckboxSupport, {
|
|
7
|
+
template: SC.Handlebars.compile('<input type="checkbox">')
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
pane = SC.MainPane.create({
|
|
11
|
+
childViews: [checkboxView]
|
|
12
|
+
});
|
|
13
|
+
pane.append();
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
teardown: function() {
|
|
17
|
+
pane.remove();
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test("value property mirrors input value", function() {
|
|
22
|
+
checkboxView.$('input').attr('checked', true);
|
|
23
|
+
|
|
24
|
+
equals(checkboxView.get('value'), true, "gets value property from DOM");
|
|
25
|
+
|
|
26
|
+
checkboxView.$('input').attr('checked', false);
|
|
27
|
+
|
|
28
|
+
checkboxView.set('value', true);
|
|
29
|
+
ok(checkboxView.$('input').attr("checked"), "sets value of DOM to value property");
|
|
30
|
+
});
|
|
31
|
+
})();
|
|
32
|
+
|
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/text_field_support.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
(function() {
|
|
2
|
+
var textFieldView, pane;
|
|
3
|
+
|
|
4
|
+
module("Text Field Support", {
|
|
5
|
+
setup: function() {
|
|
6
|
+
textFieldView = SC.TemplateView.create(SC.TextFieldSupport, {
|
|
7
|
+
template: SC.Handlebars.compile('<input type="text">')
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
pane = SC.MainPane.create({
|
|
11
|
+
childViews: [textFieldView]
|
|
12
|
+
});
|
|
13
|
+
pane.append();
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
teardown: function() {
|
|
17
|
+
pane.remove();
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test("value property mirrors input value", function() {
|
|
22
|
+
textFieldView.$('input').val('foo bar');
|
|
23
|
+
|
|
24
|
+
equals(textFieldView.get('value'), 'foo bar', "gets value property from DOM");
|
|
25
|
+
|
|
26
|
+
textFieldView.set('value', "afterlife");
|
|
27
|
+
equals(textFieldView.$('input').val(), "afterlife", "sets value of DOM to value property");
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test("listens for focus and blur events", function() {
|
|
31
|
+
var focusCalled = 0;
|
|
32
|
+
var blurCalled = 0;
|
|
33
|
+
|
|
34
|
+
textFieldView.focus = function() {
|
|
35
|
+
focusCalled++;
|
|
36
|
+
};
|
|
37
|
+
textFieldView.blur = function() {
|
|
38
|
+
blurCalled++;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
equals(focusCalled+blurCalled, 0, "precond - no callbacks called yet");
|
|
42
|
+
|
|
43
|
+
textFieldView.$('input').focus();
|
|
44
|
+
equals(focusCalled, 1, "focus called after field receives focus");
|
|
45
|
+
|
|
46
|
+
textFieldView.$('input').blur();
|
|
47
|
+
equals(blurCalled, 1, "blur alled after field blurs");
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test("calls correct method for key events", function() {
|
|
51
|
+
var insertNewlineCalled = 0;
|
|
52
|
+
var cancelCalled = 0;
|
|
53
|
+
|
|
54
|
+
textFieldView.insertNewline = function() {
|
|
55
|
+
insertNewlineCalled++;
|
|
56
|
+
return YES;
|
|
57
|
+
};
|
|
58
|
+
textFieldView.cancel = function() {
|
|
59
|
+
cancelCalled++;
|
|
60
|
+
return YES;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
textFieldView.$('input').focus();
|
|
64
|
+
equals(insertNewlineCalled+cancelCalled, 0, "precond - no callbacks called yet");
|
|
65
|
+
|
|
66
|
+
SC.RootResponder.responder.keyup(new SC.Event({ type: 'keyup', keyCode: 13 }));
|
|
67
|
+
equals(insertNewlineCalled, 1, "calls insertNewline after hitting return");
|
|
68
|
+
|
|
69
|
+
SC.RootResponder.responder.keyup(new SC.Event({ type: 'keyup', keyCode: 27 }));
|
|
70
|
+
equals(cancelCalled, 1, "calls cancel after pressing escape key");
|
|
71
|
+
|
|
72
|
+
});
|
|
73
|
+
})();
|
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/collection.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
module("SC.TemplateCollectionView");
|
|
2
|
+
|
|
3
|
+
test("creating a collection view works", function() {
|
|
4
|
+
var ExampleView = SC.TemplateView.extend({
|
|
5
|
+
tagName: 'li',
|
|
6
|
+
template: SC.Handlebars.compile('{{content/title}}')
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
var CollectionView = SC.TemplateCollectionView.extend({
|
|
10
|
+
content: [{title: 'Hello'}],
|
|
11
|
+
itemView: ExampleView
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
var collectionView = CollectionView.create();
|
|
15
|
+
collectionView.createLayer();
|
|
16
|
+
|
|
17
|
+
ok(collectionView.$('li').length === 1, "The child example view was rendered");
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test("passing a block to the collection helper sets it as the template for example views", function() {
|
|
21
|
+
TemplateTests.CollectionTestView = SC.TemplateCollectionView.create({
|
|
22
|
+
content: ['foo', 'bar', 'baz']
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
var view = SC.TemplateView.create({
|
|
26
|
+
template: SC.Handlebars.compile('{{#collection "TemplateTests.CollectionTestView"}} <aside></aside> {{/collection}}')
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
view.createLayer();
|
|
30
|
+
equals(view.$('aside').length, 3, 'one aside element is created for each content item');
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test("a block passed to a collection helper defaults to the content property of the context", function() {
|
|
34
|
+
TemplateTests.CollectionTestView = SC.TemplateCollectionView.create({
|
|
35
|
+
content: ['foo', 'bar', 'baz']
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
var view = SC.TemplateView.create({
|
|
39
|
+
template: SC.Handlebars.compile('{{#collection "TemplateTests.CollectionTestView"}} <aside>{{this}}</aside> {{/collection}}')
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
view.createLayer();
|
|
43
|
+
equals(view.$('li:has(aside:contains("foo")) + li:has(aside:contains("bar")) + li:has(aside:contains("baz"))').length, 1, 'one aside element is created for each content item');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test("a block passed to a collection helper defaults to the content property of the context", function() {
|
|
47
|
+
TemplateTests.CollectionTestView = SC.TemplateCollectionView.create({
|
|
48
|
+
content: ['foo', 'bar', 'baz']
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
var view = SC.TemplateView.create({
|
|
52
|
+
template: SC.Handlebars.compile('{{#collection "TemplateTests.CollectionTestView"}} <aside>{{this}}</aside> {{/collection}}')
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
view.createLayer();
|
|
56
|
+
equals(view.$('li:has(aside:contains("foo")) + li:has(aside:contains("bar")) + li:has(aside:contains("baz"))').length, 1, 'precond - one aside element is created for each content item');
|
|
57
|
+
|
|
58
|
+
window.billy = true;
|
|
59
|
+
|
|
60
|
+
SC.run(function() {
|
|
61
|
+
TemplateTests.CollectionTestView.set('content', []);
|
|
62
|
+
});
|
|
63
|
+
equals(view.$('aside').length, 0, "all list item views should be removed from DOM");
|
|
64
|
+
});
|
|
65
|
+
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
module("SC.TemplateView", {
|
|
2
|
+
setup: function() {
|
|
3
|
+
// var view = SC.TemplateView.create();
|
|
4
|
+
},
|
|
5
|
+
|
|
6
|
+
teardown: function() {
|
|
7
|
+
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
test("template view should call the function of the associated template", function() {
|
|
12
|
+
var view;
|
|
13
|
+
|
|
14
|
+
view = SC.TemplateView.create({
|
|
15
|
+
templateName: 'test_template',
|
|
16
|
+
|
|
17
|
+
templates: SC.Object.create({
|
|
18
|
+
test_template: function(dataSource) {
|
|
19
|
+
return "<h1 id='twas-called'>template was called</h1>";
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
view.createLayer();
|
|
25
|
+
|
|
26
|
+
ok(view.$('#twas-called').length, "the named template was called");
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test("template view should call the function of the associated template with itself as the context", function() {
|
|
30
|
+
var view;
|
|
31
|
+
|
|
32
|
+
view = SC.TemplateView.create({
|
|
33
|
+
templateName: 'test_template',
|
|
34
|
+
|
|
35
|
+
personName: "Tom DAAAALE",
|
|
36
|
+
|
|
37
|
+
templates: SC.Object.create({
|
|
38
|
+
test_template: function(dataSource) {
|
|
39
|
+
return "<h1 id='twas-called'>template was called for " + dataSource.get('personName') + "</h1>";
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
view.createLayer();
|
|
45
|
+
|
|
46
|
+
equals("template was called for Tom DAAAALE", view.$('#twas-called').text(), "the named template was called with the view as the data source");
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
test("template view defaults to a noop template", function() {
|
|
50
|
+
var view;
|
|
51
|
+
view = SC.TemplateView.create({});
|
|
52
|
+
view.createLayer();
|
|
53
|
+
|
|
54
|
+
equals(view.$().html(), '', "view div should be empty");
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test("template views return YES to mouseDown if there is a mouseUp method", function() {
|
|
58
|
+
var view = SC.TemplateView.create();
|
|
59
|
+
|
|
60
|
+
ok(!view.tryToPerform('mouseDown'), "view returns NO if there is no mouseUp method");
|
|
61
|
+
|
|
62
|
+
view = SC.TemplateView.create({
|
|
63
|
+
mouseUp: function() { }
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
ok(view.tryToPerform('mouseDown'), "view returns YES if we add a mouseUp method");
|
|
67
|
+
});
|