sproutcore 1.7.1.beta → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +44 -0
- data/README.rdoc +20 -20
- data/VERSION.yml +3 -3
- data/lib/Buildfile +1 -1
- data/lib/buildtasks/build.rake +5 -0
- data/lib/buildtasks/manifest.rake +19 -1
- data/lib/frameworks/sproutcore/Buildfile +19 -17
- data/lib/frameworks/sproutcore/CHANGELOG.md +163 -29
- data/lib/frameworks/sproutcore/README.md +29 -8
- data/lib/frameworks/sproutcore/apps/statechart_routing/Buildfile +12 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/login_controller.js +11 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/main_controller.js +7 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/statechart_controller.js +17 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +25 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/main.js +15 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/_theme.css +18 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/bar_page.js +14 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/foo_page.js +14 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/loading.rhtml +9 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +61 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/main_page.js +46 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/statechart.js +76 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/theme.js +27 -0
- data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +1 -1
- data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +14 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/animation/core.js +8 -5
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +302 -70
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +19 -14
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +471 -149
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +42 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/action_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +63 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +37 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +28 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +10 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +66 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +58 -57
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js.orig +445 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +51 -31
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +53 -69
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +98 -72
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +37 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +23 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/browser.js +66 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/event.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/locale.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +17 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +50 -30
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +46 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +1 -43
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +8 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +10 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +6 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +46 -19
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +2 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +294 -302
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js.orig +1531 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +14 -11
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/many_array.js +63 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +50 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +114 -67
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +54 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +29 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +37 -45
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/find.js +127 -127
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +42 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +1 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +19 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +30 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +24 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +121 -28
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +39 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -51
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +11 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +0 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +9 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/content.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +107 -81
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +68 -60
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +57 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +21 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +32 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +77 -132
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +5 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +16 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +52 -52
- data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +147 -147
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +11 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +22 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +462 -441
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +48 -62
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +150 -32
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +104 -45
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +42 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +148 -154
- data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +8 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/files.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/library.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/view_configs.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/mixins/drop_down.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/ready.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/plist_item.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/web.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_design.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/page_item_view.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +59 -53
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +14 -10
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +17 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +38 -14
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +5 -13
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/children.js +19 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +20 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_thumb.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +35 -12
- data/lib/frameworks/sproutcore/frameworks/formatters/README +6 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/english.lproj/strings.js +174 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +351 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/tests/date_formatter.js +517 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +345 -138
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +176 -42
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +137 -105
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +16 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +47 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +28 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +0 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/bootstrap.rhtml +34 -19
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +0 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +1 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +8 -9
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +179 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +34 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +26 -12
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +12 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_metric_optimization.js +202 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_value_support/content.js +77 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/commitEditing.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/discardEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/commitEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/discardEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +163 -149
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +16 -43
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +67 -54
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +49 -38
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +285 -242
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +13 -13
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +19 -22
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +231 -186
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +145 -143
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +156 -154
- data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js.orig +540 -0
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +15 -8
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +98 -32
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +7 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +14 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +98 -13
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +8 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +23 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +69 -18
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +57 -31
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +189 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +82 -22
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +125 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +37 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +75 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart_delegate.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +312 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +18 -22
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +508 -131
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +265 -44
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/responder_chain.js +11 -3
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/private/state_path_matcher.js +116 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/add_substate.js +108 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/with_concurrent.js +179 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/without_concurrent.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_state.js +141 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_substate.js +340 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/route_triggered.js +161 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/try_to_handle_event.js +288 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/context.js +5 -33
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +213 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +212 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/core.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{state/namespacing.js → statechart/methods/get_state.js} +3 -41
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/{invoke_state_method.js → methods/invoke_state_method.js} +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{event_handling/advanced → statechart}/respond_to_event.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/system/state_route_handler_context/methods/retry.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/table/core.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/controls/button.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars.js +29 -5
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/bind.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/collection.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/localization.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{handlebars → template_view}/handlebars.js +493 -357
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/checkbox_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/text_field_support.js +13 -2
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/panes/template.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/controls/button.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/checkbox_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/text_field_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/panes/template.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/collection.js +39 -14
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/handlebars.js +57 -6
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/bindable_span.js +21 -6
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template_collection.js +55 -26
- data/lib/frameworks/sproutcore/frameworks/testing/system/equiv.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +122 -122
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +1 -1
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +0 -1
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +4 -4
- data/lib/frameworks/sproutcore/lib/index.rhtml +55 -32
- data/lib/frameworks/sproutcore/license.js +2 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/body.css +5 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +21 -13
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +17 -10
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +4 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +20 -12
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +16 -8
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/jumbo/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/small/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +5 -3
- data/lib/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/toolbar.css +1 -1
- data/lib/gen/app/USAGE +17 -4
- data/lib/gen/language/Buildfile +4 -4
- data/lib/gen/language/USAGE +4 -4
- data/lib/gen/page/templates/pages/@target_name@/Buildfile +7 -7
- data/lib/gen/{html_app → statechart_app}/Buildfile +0 -0
- data/lib/gen/{html_app → statechart_app}/README +0 -0
- data/lib/gen/statechart_app/USAGE +21 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/Buildfile +9 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/core.js +24 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/main.js +26 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/_theme.css +18 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/loading.rhtml +9 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.js +21 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/statechart.js +8 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/states/ready_state.js +12 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/theme.js +24 -0
- data/lib/sproutcore/builders.rb +1 -0
- data/lib/sproutcore/builders/base.rb +19 -1
- data/lib/sproutcore/builders/chance_file.rb +6 -1
- data/lib/sproutcore/builders/handlebars.rb +1 -9
- data/lib/sproutcore/builders/javascript.rb +1 -10
- data/lib/sproutcore/builders/json.rb +25 -0
- data/lib/sproutcore/builders/less.rb +1 -1
- data/lib/sproutcore/builders/sass.rb +1 -1
- data/lib/sproutcore/builders/stylesheet.rb +1 -9
- data/lib/sproutcore/helpers/html5_manifest.rb +1 -1
- data/lib/sproutcore/helpers/static_helper.rb +42 -0
- data/lib/sproutcore/rack/proxy.rb +21 -3
- data/lib/sproutcore/rack/service.rb +3 -2
- data/lib/sproutcore/tools.rb +18 -25
- data/lib/sproutcore/tools/gen.rb +10 -3
- data/lib/sproutcore/tools/init.rb +11 -10
- data/spec/buildtasks/manifest/prepare_build_tasks/json_spec.rb +62 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -1
- data/spec/fixtures/builder_tests/apps/json_test/sc_static.json +2 -0
- data/spec/lib/builders/json_spec.rb +53 -0
- data/sproutcore.gemspec +2 -2
- data/vendor/chance/lib/chance/parser.rb +1 -1
- metadata +222 -177
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +0 -259
- data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +0 -69
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +0 -44
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +0 -64
- data/lib/frameworks/sproutcore/frameworks/mini/license.js +0 -30
- data/lib/gen/html_app/USAGE +0 -15
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +0 -11
- 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 -6
- data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +0 -1
- data/lib/gen/html_project/Buildfile +0 -45
- data/lib/gen/html_project/INIT +0 -3
- data/lib/gen/html_project/README +0 -1
- data/lib/gen/html_project/USAGE +0 -2
- data/lib/gen/html_project/templates/@filename@/Buildfile +0 -5
- data/lib/gen/html_project/templates/@filename@/README +0 -4
@@ -103,7 +103,7 @@ CoreTest.equiv = function () {
|
|
103
103
|
"regexp": function (b, a) {
|
104
104
|
return hoozit(b) === "regexp" &&
|
105
105
|
a.source === b.source && // the regex itself
|
106
|
-
a.global === b.global && // and its
|
106
|
+
a.global === b.global && // and its modifiers (gmi) ...
|
107
107
|
a.ignoreCase === b.ignoreCase &&
|
108
108
|
a.multiline === b.multiline;
|
109
109
|
},
|
@@ -13,46 +13,46 @@ var QUNIT_BREAK_ON_TEST_FAIL = false;
|
|
13
13
|
|
14
14
|
A test plan contains a set of functions that will be executed in order. The
|
15
15
|
results will be recorded into a results hash as well as calling a delegate.
|
16
|
-
|
16
|
+
|
17
17
|
When you define tests and modules, you are adding to the active test plan.
|
18
18
|
The test plan is then run when the page has finished loading.
|
19
|
-
|
19
|
+
|
20
20
|
Normally you will not need to work with a test plan directly, though if you
|
21
21
|
are writing a test runner application that needs to monitor test progress
|
22
22
|
you may write a delegate to talk to the test plan.
|
23
23
|
|
24
24
|
The CoreTest.Plan.fn hash contains functions that will be made global via
|
25
|
-
wrapper methods. The methods must accept a Plan object as their first
|
25
|
+
wrapper methods. The methods must accept a Plan object as their first
|
26
26
|
parameter.
|
27
|
-
|
28
|
-
## Results
|
29
|
-
|
30
|
-
The results hash contains a summary of the results of running the test
|
27
|
+
|
28
|
+
## Results
|
29
|
+
|
30
|
+
The results hash contains a summary of the results of running the test
|
31
31
|
plan. It includes the following properties:
|
32
|
-
|
32
|
+
|
33
33
|
- *assertions* -- the total number of assertions
|
34
34
|
- *tests* -- the total number of tests
|
35
35
|
- *passed* -- number of assertions that passed
|
36
36
|
- *failed* -- number of assertions that failed
|
37
37
|
- *errors* -- number of assertions with errors
|
38
38
|
- *warnings* -- number of assertions with warnings
|
39
|
-
|
39
|
+
|
40
40
|
You can also consult the log property, which contains an array of hashes -
|
41
41
|
one for each assertion - with the following properties:
|
42
|
-
|
42
|
+
|
43
43
|
- *module* -- module descriptions
|
44
44
|
- *test* -- test description
|
45
45
|
- *message* -- assertion description
|
46
46
|
- *result* -- CoreTest.OK, CoreTest.FAILED, CoreTest.ERROR, CoreTest.WARN
|
47
|
-
|
47
|
+
|
48
48
|
@since SproutCore 1.0
|
49
49
|
*/
|
50
50
|
CoreTest.Plan = {
|
51
|
-
|
51
|
+
|
52
52
|
/**
|
53
|
-
Define a new test plan instance. Optionally pass attributes to apply
|
53
|
+
Define a new test plan instance. Optionally pass attributes to apply
|
54
54
|
to the new plan object. Usually you will call this without arguments.
|
55
|
-
|
55
|
+
|
56
56
|
@param {Hash} attrs plan arguments
|
57
57
|
@returns {CoreTest.Plan} new instance/subclass
|
58
58
|
*/
|
@@ -66,38 +66,38 @@ CoreTest.Plan = {
|
|
66
66
|
},
|
67
67
|
|
68
68
|
// ..........................................................
|
69
|
-
// RUNNING
|
70
|
-
//
|
71
|
-
|
69
|
+
// RUNNING
|
70
|
+
//
|
71
|
+
|
72
72
|
/** @private - array of functions to execute in order. */
|
73
73
|
queue: [],
|
74
74
|
|
75
75
|
/**
|
76
76
|
If true then the test plan is currently running and items in the queue
|
77
77
|
will execute in order.
|
78
|
-
|
78
|
+
|
79
79
|
@type {Boolean}
|
80
80
|
*/
|
81
81
|
isRunning: false,
|
82
82
|
|
83
83
|
/**
|
84
84
|
Primitive used to add callbacks to the test plan queue. Usually you will
|
85
|
-
not want to call this method directly but instead use the module() or
|
85
|
+
not want to call this method directly but instead use the module() or
|
86
86
|
test() methods.
|
87
|
-
|
87
|
+
|
88
88
|
@returns {CoreTest.Plan} receiver
|
89
89
|
*/
|
90
90
|
synchronize: function synchronize(callback) {
|
91
91
|
this.queue.push(callback);
|
92
|
-
if (this.isRunning) this.process(); // run queue
|
92
|
+
if (this.isRunning) this.process(); // run queue
|
93
93
|
return this;
|
94
94
|
},
|
95
|
-
|
95
|
+
|
96
96
|
/**
|
97
97
|
Processes items in the queue as long as isRunning remained true. When
|
98
98
|
no further items are left in the queue, calls finish(). Usually you will
|
99
99
|
not call this method directly. Instead call run().
|
100
|
-
|
100
|
+
|
101
101
|
@returns {CoreTest.Plan} receiver
|
102
102
|
*/
|
103
103
|
process: function process() {
|
@@ -106,35 +106,35 @@ CoreTest.Plan = {
|
|
106
106
|
}
|
107
107
|
return this ;
|
108
108
|
},
|
109
|
-
|
109
|
+
|
110
110
|
/**
|
111
|
-
Begins running the test plan after a slight delay to avoid
|
112
|
-
any current callbacks.
|
113
|
-
|
111
|
+
Begins running the test plan after a slight delay to avoid interrupting
|
112
|
+
any current callbacks.
|
113
|
+
|
114
114
|
@returns {CoreTest.Plan} receiver
|
115
115
|
*/
|
116
116
|
start: function() {
|
117
117
|
var plan = this ;
|
118
118
|
setTimeout(function() {
|
119
119
|
if (plan.timeout) clearTimeout(plan.timeout);
|
120
|
-
plan.timeout = null;
|
120
|
+
plan.timeout = null;
|
121
121
|
plan.isRunning = true;
|
122
122
|
plan.process();
|
123
123
|
}, 13);
|
124
124
|
return this ;
|
125
125
|
},
|
126
|
-
|
126
|
+
|
127
127
|
/**
|
128
128
|
Stops the test plan from running any further. If you pass a timeout,
|
129
|
-
it will raise an exception if the test plan does not begin executing
|
130
|
-
with the
|
131
|
-
|
129
|
+
it will raise an exception if the test plan does not begin executing
|
130
|
+
with the allotted timeout.
|
131
|
+
|
132
132
|
@param {Number} timeout optional timeout in msec
|
133
133
|
@returns {CoreTest.Plan} receiver
|
134
134
|
*/
|
135
135
|
stop: function(timeout) {
|
136
136
|
this.isRunning = false ;
|
137
|
-
|
137
|
+
|
138
138
|
if (this.timeout) clearTimeout(this.timeout);
|
139
139
|
if (timeout) {
|
140
140
|
var plan = this;
|
@@ -144,7 +144,7 @@ CoreTest.Plan = {
|
|
144
144
|
} else this.timeout = null ;
|
145
145
|
return this ;
|
146
146
|
},
|
147
|
-
|
147
|
+
|
148
148
|
/**
|
149
149
|
Force the test plan to take a break. Avoids slow script warnings. This
|
150
150
|
is called automatically after each test completes.
|
@@ -153,15 +153,15 @@ CoreTest.Plan = {
|
|
153
153
|
if (this.isRunning) {
|
154
154
|
var del = this.delegate;
|
155
155
|
if (del && del.planDidPause) del.planDidPause(this);
|
156
|
-
|
156
|
+
|
157
157
|
this.isRunning = false ;
|
158
158
|
this.start();
|
159
159
|
}
|
160
160
|
return this ;
|
161
161
|
},
|
162
|
-
|
162
|
+
|
163
163
|
/**
|
164
|
-
Initiates running the tests for the first time. This will add an item
|
164
|
+
Initiates running the tests for the first time. This will add an item
|
165
165
|
to the queue to call finish() on the plan when the run completes.
|
166
166
|
|
167
167
|
@returns {CoreTest.Plan} receiver
|
@@ -169,7 +169,7 @@ CoreTest.Plan = {
|
|
169
169
|
run: function() {
|
170
170
|
this.isRunning = true;
|
171
171
|
this.prepare();
|
172
|
-
|
172
|
+
|
173
173
|
// initialize new results
|
174
174
|
this.results = {
|
175
175
|
start: new Date().getTime(),
|
@@ -186,14 +186,14 @@ CoreTest.Plan = {
|
|
186
186
|
|
187
187
|
// add item to queue to finish running the test plan when finished.
|
188
188
|
this.begin().synchronize(this.finish).process();
|
189
|
-
|
189
|
+
|
190
190
|
return this ;
|
191
191
|
},
|
192
192
|
|
193
193
|
/**
|
194
194
|
Called when the test plan begins running. This method will notify the
|
195
195
|
delegate. You will not normally call this method directly.
|
196
|
-
|
196
|
+
|
197
197
|
@returns {CoreTest.Plan} receiver
|
198
198
|
*/
|
199
199
|
begin: function() {
|
@@ -201,7 +201,7 @@ CoreTest.Plan = {
|
|
201
201
|
if (del && del.planDidBegin) del.planDidBegin(this);
|
202
202
|
return this ;
|
203
203
|
},
|
204
|
-
|
204
|
+
|
205
205
|
/**
|
206
206
|
When the test plan finishes running, this method will be called to notify
|
207
207
|
the delegate that the plan as finished.
|
@@ -211,10 +211,10 @@ CoreTest.Plan = {
|
|
211
211
|
finish: function() {
|
212
212
|
var r = this.results,
|
213
213
|
del = this.delegate;
|
214
|
-
|
214
|
+
|
215
215
|
r.finish = new Date().getTime();
|
216
216
|
r.runtime = r.finish - r.start;
|
217
|
-
|
217
|
+
|
218
218
|
if (del && del.planDidFinish) del.planDidFinish(this, r);
|
219
219
|
return this ;
|
220
220
|
},
|
@@ -229,25 +229,25 @@ CoreTest.Plan = {
|
|
229
229
|
if (typeof SC !== 'undefined' && SC.filename) {
|
230
230
|
desc = SC.filename.replace(/^.+?\/current\/tests\//,'') + '\n' + desc;
|
231
231
|
}
|
232
|
-
|
232
|
+
|
233
233
|
this.currentModule = desc;
|
234
234
|
|
235
235
|
if (!lifecycle) lifecycle = {};
|
236
236
|
this.setup(lifecycle.setup).teardown(lifecycle.teardown);
|
237
|
-
|
237
|
+
|
238
238
|
return this ;
|
239
239
|
},
|
240
|
-
|
240
|
+
|
241
241
|
/**
|
242
242
|
Sets the current setup method.
|
243
|
-
|
243
|
+
|
244
244
|
@returns {CoreTest.Plan} receiver
|
245
245
|
*/
|
246
246
|
setup: function(func) {
|
247
247
|
this.currentSetup = func || CoreTest.K;
|
248
248
|
return this;
|
249
249
|
},
|
250
|
-
|
250
|
+
|
251
251
|
/**
|
252
252
|
Sets the current teardown method
|
253
253
|
|
@@ -257,14 +257,14 @@ CoreTest.Plan = {
|
|
257
257
|
this.currentTeardown = func || CoreTest.K ;
|
258
258
|
return this;
|
259
259
|
},
|
260
|
-
|
260
|
+
|
261
261
|
now: function() { return new Date().getTime(); },
|
262
|
-
|
262
|
+
|
263
263
|
/**
|
264
264
|
Generates a unit test, adding it to the test plan.
|
265
265
|
*/
|
266
266
|
test: function test(desc, func) {
|
267
|
-
|
267
|
+
|
268
268
|
if (!this.enabled(this.currentModule, desc)) return this; // skip
|
269
269
|
|
270
270
|
// base prototype describing test
|
@@ -274,14 +274,14 @@ CoreTest.Plan = {
|
|
274
274
|
expected: 0,
|
275
275
|
assertions: []
|
276
276
|
};
|
277
|
-
|
277
|
+
|
278
278
|
var msg;
|
279
279
|
var name = desc ;
|
280
280
|
if (this.currentModule) name = this.currentModule + " module: " + name;
|
281
|
-
|
281
|
+
|
282
282
|
var setup = this.currentSetup || CoreTest.K;
|
283
283
|
var teardown = this.currentTeardown || CoreTest.K;
|
284
|
-
|
284
|
+
|
285
285
|
// add setup to queue
|
286
286
|
this.synchronize(function() {
|
287
287
|
|
@@ -291,7 +291,7 @@ CoreTest.Plan = {
|
|
291
291
|
mainEl = null;
|
292
292
|
|
293
293
|
this.working = working;
|
294
|
-
|
294
|
+
|
295
295
|
try {
|
296
296
|
working.total_begin = working.setup_begin = this.now();
|
297
297
|
setup.call(this);
|
@@ -301,7 +301,7 @@ CoreTest.Plan = {
|
|
301
301
|
this.error("Setup exception on " + name + ": " + msg);
|
302
302
|
}
|
303
303
|
});
|
304
|
-
|
304
|
+
|
305
305
|
// now actually invoke test
|
306
306
|
this.synchronize(function() {
|
307
307
|
if (!func) {
|
@@ -318,7 +318,7 @@ CoreTest.Plan = {
|
|
318
318
|
}
|
319
319
|
}
|
320
320
|
});
|
321
|
-
|
321
|
+
|
322
322
|
// cleanup
|
323
323
|
this.synchronize(function() {
|
324
324
|
try {
|
@@ -330,10 +330,10 @@ CoreTest.Plan = {
|
|
330
330
|
this.error("Teardown exception on " + name + ": " + msg);
|
331
331
|
}
|
332
332
|
});
|
333
|
-
|
333
|
+
|
334
334
|
// finally, reset and report result
|
335
335
|
this.synchronize(function() {
|
336
|
-
|
336
|
+
|
337
337
|
if (this.reset) {
|
338
338
|
try {
|
339
339
|
this.working.reset_begin = this.now();
|
@@ -344,16 +344,16 @@ CoreTest.Plan = {
|
|
344
344
|
this.error("Reset exception on " + name + ": " + msg) ;
|
345
345
|
}
|
346
346
|
}
|
347
|
-
|
347
|
+
|
348
348
|
// check for expected assertions
|
349
349
|
var w = this.working,
|
350
350
|
exp = w.expected,
|
351
351
|
len = w.assertions.length;
|
352
|
-
|
352
|
+
|
353
353
|
if (exp && exp !== len) {
|
354
354
|
this.fail("Expected " + exp + " assertions, but " + len + " were run");
|
355
355
|
}
|
356
|
-
|
356
|
+
|
357
357
|
// finally, record result
|
358
358
|
this.working = null;
|
359
359
|
this.record(w.module, w.test, w.assertions, w);
|
@@ -367,7 +367,7 @@ CoreTest.Plan = {
|
|
367
367
|
this.pauseTime = now ;
|
368
368
|
}
|
369
369
|
}
|
370
|
-
|
370
|
+
|
371
371
|
});
|
372
372
|
},
|
373
373
|
|
@@ -385,9 +385,9 @@ CoreTest.Plan = {
|
|
385
385
|
}
|
386
386
|
begin = null;
|
387
387
|
},
|
388
|
-
|
388
|
+
|
389
389
|
/**
|
390
|
-
Converts the passed string into HTML and then appends it to the main body
|
390
|
+
Converts the passed string into HTML and then appends it to the main body
|
391
391
|
element. This is a useful way to automatically load fixture HTML into the
|
392
392
|
main page.
|
393
393
|
*/
|
@@ -400,10 +400,10 @@ CoreTest.Plan = {
|
|
400
400
|
// now append new content
|
401
401
|
html.each(function() { body.appendChild(this); });
|
402
402
|
},
|
403
|
-
|
403
|
+
|
404
404
|
/**
|
405
405
|
Records the results of a test. This will add the results to the log
|
406
|
-
and notify the delegate. The passed assertions array should contain
|
406
|
+
and notify the delegate. The passed assertions array should contain
|
407
407
|
hashes with the result and message.
|
408
408
|
*/
|
409
409
|
record: function(module, test, assertions, timings) {
|
@@ -411,7 +411,7 @@ CoreTest.Plan = {
|
|
411
411
|
len = assertions.length,
|
412
412
|
del = this.delegate,
|
413
413
|
idx, cur;
|
414
|
-
|
414
|
+
|
415
415
|
r.tests++;
|
416
416
|
for(idx=0;idx<len;idx++) {
|
417
417
|
cur = assertions[idx];
|
@@ -422,15 +422,15 @@ CoreTest.Plan = {
|
|
422
422
|
r[cur.result]++;
|
423
423
|
r.assertions.push(cur);
|
424
424
|
}
|
425
|
-
|
425
|
+
|
426
426
|
if (del && del.planDidRecord) {
|
427
427
|
del.planDidRecord(this, module, test, assertions, timings) ;
|
428
428
|
}
|
429
|
-
|
429
|
+
|
430
430
|
},
|
431
|
-
|
431
|
+
|
432
432
|
/**
|
433
|
-
Universal method can be called to reset the global state of the
|
433
|
+
Universal method can be called to reset the global state of the
|
434
434
|
application for each test. The default implementation will reset any
|
435
435
|
saved fixture.
|
436
436
|
*/
|
@@ -439,24 +439,24 @@ CoreTest.Plan = {
|
|
439
439
|
var mainEl = document.getElementById('main');
|
440
440
|
if (mainEl) mainEl.innerHTML = this.fixture;
|
441
441
|
mainEl = null;
|
442
|
-
}
|
442
|
+
}
|
443
443
|
return this ;
|
444
444
|
},
|
445
|
-
|
445
|
+
|
446
446
|
/**
|
447
|
-
Can be used to decide if a particular test should be enabled or not.
|
447
|
+
Can be used to decide if a particular test should be enabled or not.
|
448
448
|
Current implementation allows a test to run.
|
449
|
-
|
449
|
+
|
450
450
|
@returns {Boolean}
|
451
451
|
*/
|
452
452
|
enabled: function(moduleName, testName) {
|
453
453
|
return true;
|
454
454
|
},
|
455
|
-
|
455
|
+
|
456
456
|
// ..........................................................
|
457
457
|
// MATCHERS
|
458
|
-
//
|
459
|
-
|
458
|
+
//
|
459
|
+
|
460
460
|
/**
|
461
461
|
Called by a matcher to record that a test has passed. Requires a working
|
462
462
|
test property.
|
@@ -480,7 +480,7 @@ CoreTest.Plan = {
|
|
480
480
|
},
|
481
481
|
|
482
482
|
/**
|
483
|
-
Called by a matcher to record that a test issued a warning. Requires a
|
483
|
+
Called by a matcher to record that a test issued a warning. Requires a
|
484
484
|
working test property.
|
485
485
|
*/
|
486
486
|
warn: function(msg) {
|
@@ -491,22 +491,22 @@ CoreTest.Plan = {
|
|
491
491
|
},
|
492
492
|
|
493
493
|
/**
|
494
|
-
Called by a matcher to record that a test had an error. Requires a
|
494
|
+
Called by a matcher to record that a test had an error. Requires a
|
495
495
|
working test property.
|
496
496
|
*/
|
497
497
|
error: function(msg, e) {
|
498
498
|
var w = this.working ;
|
499
499
|
if (!w) throw "error("+msg+") called outside of a working test";
|
500
|
-
|
500
|
+
|
501
501
|
if(e && typeof console != "undefined" && console.error && console.warn ) {
|
502
502
|
console.error(msg);
|
503
503
|
console.error(e);
|
504
504
|
}
|
505
|
-
|
505
|
+
|
506
506
|
w.assertions.push({ message: msg, result: CoreTest.ERROR });
|
507
507
|
return this ;
|
508
508
|
},
|
509
|
-
|
509
|
+
|
510
510
|
/**
|
511
511
|
Any methods added to this hash will be made global just before the first
|
512
512
|
test is run. You can add new methods to this hash to use them in unit
|
@@ -549,9 +549,9 @@ CoreTest.Plan = {
|
|
549
549
|
/**
|
550
550
|
Primitive performs a basic equality test on the passed values. Prints
|
551
551
|
out both actual and expected values.
|
552
|
-
|
552
|
+
|
553
553
|
Preferred to ok(actual === expected, message);
|
554
|
-
|
554
|
+
|
555
555
|
@param {Object} actual tested object
|
556
556
|
@param {Object} expected expected value
|
557
557
|
@param {String} msg optional message
|
@@ -561,13 +561,13 @@ CoreTest.Plan = {
|
|
561
561
|
if (msg === undefined) msg = null; // make sure ok logs properly
|
562
562
|
return this.ok(actual == expected, actual, expected, msg);
|
563
563
|
},
|
564
|
-
|
564
|
+
|
565
565
|
/**
|
566
566
|
Expects the passed function call to throw an exception of the given
|
567
567
|
type. If you pass null or Error for the expected exception, this will
|
568
|
-
pass if any error is received. If you pass a string, this will check
|
568
|
+
pass if any error is received. If you pass a string, this will check
|
569
569
|
message property of the exception.
|
570
|
-
|
570
|
+
|
571
571
|
@param {Function} callback the function to execute
|
572
572
|
@param {Error} expected optional, the expected error
|
573
573
|
@param {String} a description
|
@@ -575,13 +575,13 @@ CoreTest.Plan = {
|
|
575
575
|
*/
|
576
576
|
should_throw: function should_throw(callback, expected, msg) {
|
577
577
|
var actual = false ;
|
578
|
-
|
578
|
+
|
579
579
|
try {
|
580
580
|
callback();
|
581
581
|
} catch(e) {
|
582
|
-
actual = (typeof expected === "string") ? e.message : e;
|
582
|
+
actual = (typeof expected === "string") ? e.message : e;
|
583
583
|
}
|
584
|
-
|
584
|
+
|
585
585
|
if (expected===false) {
|
586
586
|
ok(actual===false, CoreTest.fmt("%@ expected no exception, actual %@", msg, actual));
|
587
587
|
} else if (expected===Error || expected===null || expected===true) {
|
@@ -590,9 +590,9 @@ CoreTest.Plan = {
|
|
590
590
|
equals(actual, expected, msg);
|
591
591
|
}
|
592
592
|
},
|
593
|
-
|
593
|
+
|
594
594
|
/**
|
595
|
-
Specify the number of expected assertions to gaurantee that a failed
|
595
|
+
Specify the number of expected assertions to gaurantee that a failed
|
596
596
|
test (no assertions are run at all) don't slip through
|
597
597
|
|
598
598
|
@returns {CoreTest.Plan} receiver
|
@@ -600,13 +600,13 @@ CoreTest.Plan = {
|
|
600
600
|
expect: function expect(asserts) {
|
601
601
|
this.working.expected = asserts;
|
602
602
|
},
|
603
|
-
|
603
|
+
|
604
604
|
/**
|
605
605
|
Verifies that two objects are actually the same. This method will do
|
606
606
|
a deep compare instead of a simple equivalence test. You should use
|
607
|
-
this instead of equals() when you expect the two object to be different
|
607
|
+
this instead of equals() when you expect the two object to be different
|
608
608
|
instances but to have the same content.
|
609
|
-
|
609
|
+
|
610
610
|
@param {Object} value tested object
|
611
611
|
@param {Object} actual expected value
|
612
612
|
@param {String} msg optional message
|
@@ -616,66 +616,66 @@ CoreTest.Plan = {
|
|
616
616
|
if (msg === undefined) msg = null ; // make sure ok logs properly
|
617
617
|
return this.ok(CoreTest.equiv(actual, expected), actual, expected, msg);
|
618
618
|
},
|
619
|
-
|
619
|
+
|
620
620
|
/**
|
621
|
-
Stops the current tests from running. An optional timeout will
|
621
|
+
Stops the current tests from running. An optional timeout will
|
622
622
|
automatically fail the test if it does not restart within the specified
|
623
623
|
period of time.
|
624
|
-
|
624
|
+
|
625
625
|
@param {Number} timeout timeout in msec
|
626
626
|
@returns {CoreTest.Plan} receiver
|
627
627
|
*/
|
628
628
|
stop: function(timeout) {
|
629
629
|
return this.stop(timeout);
|
630
630
|
},
|
631
|
-
|
631
|
+
|
632
632
|
/**
|
633
633
|
Restarts tests running. Use this to begin tests after you stop tests.
|
634
|
-
|
634
|
+
|
635
635
|
@returns {CoreTest.Plan} receiver
|
636
636
|
*/
|
637
637
|
start: function() {
|
638
638
|
return this.start();
|
639
639
|
},
|
640
|
-
|
641
|
-
reset: function() {
|
642
|
-
return this.reset();
|
640
|
+
|
641
|
+
reset: function() {
|
642
|
+
return this.reset();
|
643
643
|
}
|
644
|
-
|
644
|
+
|
645
645
|
},
|
646
|
-
|
646
|
+
|
647
647
|
/**
|
648
648
|
Exports the comparison functions into the global namespace. This will
|
649
|
-
allow you to call these methods from within testing functions. This
|
649
|
+
allow you to call these methods from within testing functions. This
|
650
650
|
method is called automatically just before the first test is run.
|
651
|
-
|
651
|
+
|
652
652
|
@returns {CoreTest.Plan} receiver
|
653
653
|
*/
|
654
654
|
prepare: function() {
|
655
655
|
var fn = this.fn,
|
656
656
|
plan = this,
|
657
657
|
key, func;
|
658
|
-
|
658
|
+
|
659
659
|
for(key in fn) {
|
660
660
|
if (!fn.hasOwnProperty(key)) continue ;
|
661
661
|
func = fn[key];
|
662
662
|
if (typeof func !== "function") continue ;
|
663
663
|
window[key] = this._bind(func);
|
664
|
-
if (!plan[key]) plan[key] = func;
|
664
|
+
if (!plan[key]) plan[key] = func;
|
665
665
|
}
|
666
666
|
return this ;
|
667
667
|
},
|
668
|
-
|
668
|
+
|
669
669
|
_bind: function(func) {
|
670
670
|
var plan = this;
|
671
671
|
return function() { return func.apply(plan, arguments); };
|
672
672
|
}
|
673
|
-
|
673
|
+
|
674
674
|
};
|
675
675
|
|
676
676
|
// ..........................................................
|
677
677
|
// EXPORT BASIC API
|
678
|
-
//
|
678
|
+
//
|
679
679
|
|
680
680
|
CoreTest.defaultPlan = function defaultPlan() {
|
681
681
|
var plan = CoreTest.plan;
|
@@ -689,20 +689,20 @@ CoreTest.defaultPlan = function defaultPlan() {
|
|
689
689
|
// create a module. If this is the first time, create the test plan and
|
690
690
|
// runner. This will cause the test to run on page load
|
691
691
|
window.module = function(desc, l) {
|
692
|
-
CoreTest.defaultPlan().module(desc, l);
|
693
|
-
};
|
692
|
+
CoreTest.defaultPlan().module(desc, l);
|
693
|
+
};
|
694
694
|
|
695
695
|
// create a test. If this is the first time, create the test plan and
|
696
696
|
// runner. This will cause the test to run on page load
|
697
697
|
window.test = function(desc, func) {
|
698
|
-
CoreTest.defaultPlan().test(desc, func);
|
699
|
-
};
|
698
|
+
CoreTest.defaultPlan().test(desc, func);
|
699
|
+
};
|
700
700
|
|
701
701
|
// reset htmlbody for unit testing
|
702
702
|
window.clearHtmlbody = function() {
|
703
|
-
CoreTest.defaultPlan().clearHtmlbody();
|
704
|
-
};
|
703
|
+
CoreTest.defaultPlan().clearHtmlbody();
|
704
|
+
};
|
705
705
|
|
706
706
|
window.htmlbody = function(string) {
|
707
|
-
CoreTest.defaultPlan().htmlbody(string);
|
708
|
-
};
|
707
|
+
CoreTest.defaultPlan().htmlbody(string);
|
708
|
+
};
|