sproutcore 1.8.2.1 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +2 -2
- data/lib/buildtasks/helpers/file_rule_list.rb +3 -3
- data/lib/frameworks/sproutcore/Buildfile +1 -1
- data/lib/frameworks/sproutcore/CHANGELOG.md +235 -16
- data/lib/frameworks/sproutcore/apps/media_examples/Buildfile +13 -0
- data/lib/frameworks/sproutcore/apps/media_examples/core.js +35 -0
- data/lib/frameworks/sproutcore/apps/media_examples/resources/loading.rhtml +3 -0
- data/lib/frameworks/sproutcore/apps/media_examples/resources/main_page.js +53 -0
- data/lib/frameworks/sproutcore/apps/media_examples/views/audio_view.js +100 -0
- data/lib/frameworks/sproutcore/apps/media_examples/views/camera_view.js +39 -0
- data/lib/frameworks/sproutcore/apps/media_examples/views/capabilities_view.js +116 -0
- data/lib/frameworks/sproutcore/apps/media_examples/views/microphone_view.js +40 -0
- data/lib/frameworks/sproutcore/apps/media_examples/views/video_view.js +107 -0
- data/lib/frameworks/sproutcore/apps/showcase/Buildfile +11 -0
- data/lib/frameworks/sproutcore/apps/showcase/README +15 -0
- data/lib/frameworks/sproutcore/apps/showcase/controllers/source_controller.js +15 -0
- data/lib/frameworks/sproutcore/apps/showcase/controllers/source_tree_controller.js +212 -0
- data/lib/frameworks/sproutcore/apps/showcase/core.js +170 -0
- data/lib/frameworks/sproutcore/apps/showcase/main.js +27 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/_theme.css +18 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/api.css +80 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/favicon.ico +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/alarm-clock.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/balloon-facebook.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/balloon-twitter.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/balloon.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/bullet.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/calendar-insert.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/cross.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/example-box-bg.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit-grape.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit-lime.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit-orange.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/glow.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/green-dot.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/grey-dot.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/logo.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/pixels.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/red-dot.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-logo.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-startup-landscape.jpg +0 -0
- data/lib/frameworks/sproutcore/apps/{test_controls → showcase}/resources/loading.rhtml +1 -1
- data/lib/frameworks/sproutcore/apps/showcase/resources/main_page.js +61 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/stylesheet.css +365 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/views_page.js +64 -0
- data/lib/frameworks/sproutcore/apps/showcase/system/views_item_content.js +59 -0
- data/lib/frameworks/sproutcore/apps/showcase/theme.js +27 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/button_views.js +55 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/checkbox_views.js +34 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/container_views.js +29 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/date_field_views.js +30 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/disclosure_views.js +22 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/grid_views.js +28 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/image_button_views.js +22 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/image_views.js +51 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/label_views.js +53 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/list_views.js +31 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/popup_button_views.js +24 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/progress_views.js +26 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/radio_views.js +30 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/scroll_views.js +40 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/segmented_views.js +90 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/select_views.js +64 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/slider_views.js +46 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/source_list_views.js +23 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/split_views.js +22 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/stacked_views.js +23 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/static_content_views.js +23 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/tab_views.js +51 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/text_field_views.js +52 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/toolbar_views.js +23 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/views_item_view.js +91 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/views_list_view.js +67 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/web_views.js +32 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/well_views.js +29 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/workspace_views.js +23 -0
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +91 -51
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +93 -27
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +196 -15
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +26 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +90 -92
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +69 -39
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/color.js +769 -0
- data/lib/frameworks/sproutcore/frameworks/{desktop → core_foundation}/system/key_bindings.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/req_anim_frame.js +31 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +8 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +49 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/ext/object_test.js +106 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/color.js +448 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js +8 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/invokeLater.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +90 -30
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/touch.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +64 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +20 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +58 -38
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/touch.js +32 -39
- data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +20 -15
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +19 -15
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +16 -16
- data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +32 -32
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +53 -38
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +9 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +26 -26
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +1 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +0 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +96 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/datetime_recordattribute.js +22 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +376 -37
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +51 -53
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +108 -66
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +33 -35
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +6 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +33 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +181 -15
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +153 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +39 -18
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +6 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +139 -50
- data/lib/frameworks/sproutcore/frameworks/{foundation → desktop}/resources/button_view.css +3 -3
- data/lib/frameworks/sproutcore/frameworks/{foundation → desktop}/resources/checkbox_view.css +4 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/disclosure.css +2 -2
- data/lib/frameworks/sproutcore/frameworks/{foundation → desktop}/resources/radio_view.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +23 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/web.css +5 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +4 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +3 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/collection_fast_path.js +58 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +79 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +13 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/drag_and_drop.js +147 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +123 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/drag_and_drop.js +150 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +58 -44
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/methods.js +9 -80
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +54 -130
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/observers.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +64 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/methods.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +28 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/methods.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/ui.js +141 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +69 -36
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +27 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +41 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +51 -89
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +59 -34
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +59 -49
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroll.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +14 -14
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +8 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +13 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/colors.js +21 -22
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/selection_support.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +4 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/image_queue.js +68 -44
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js +10 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +0 -10
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +24 -59
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +47 -34
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +96 -12
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +38 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +38 -50
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/media/media_capabilities.js +211 -0
- data/lib/frameworks/sproutcore/frameworks/media/render_delegates/media_slider.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/media/resources/playeras3.fla +0 -0
- data/lib/frameworks/sproutcore/frameworks/media/resources/video.css +129 -115
- data/lib/frameworks/sproutcore/frameworks/media/resources/videoCanvas.swf +0 -0
- data/lib/frameworks/sproutcore/frameworks/media/tests/media_capabilities.js +194 -0
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +56 -173
- data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +15 -18
- data/lib/frameworks/sproutcore/frameworks/media/views/media_slider.js +63 -219
- data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +4 -8
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +51 -160
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +138 -102
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +8 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +32 -12
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +28 -24
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +111 -12
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/compare.js +9 -7
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +8 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable.js +160 -115
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +64 -19
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/mixin.js +83 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/bind.js +3 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/collection.js +13 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/handlebars.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/template_view/views/template_collection.js +5 -5
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +5 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +13 -12
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +9 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress.css +105 -5
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_indeterminate_content.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +19 -15
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +93 -21
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +91 -15
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +21 -17
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +26 -25
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/menu_item_view.css +2 -4
- data/lib/sproutcore/helpers/minifier.rb +5 -5
- data/lib/sproutcore/tools/build.rb +1 -1
- data/sproutcore.gemspec +6 -1
- data/vendor/chance/lib/chance/instance/slicing.rb +2 -2
- metadata +143 -60
- data/lib/frameworks/sproutcore/apps/test_controls/Buildfile +0 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/alert.js +0 -39
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/buttons.js +0 -21
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/categories.js +0 -125
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/category.js +0 -36
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/select.js +0 -12
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/split.js +0 -74
- data/lib/frameworks/sproutcore/apps/test_controls/core.js +0 -29
- data/lib/frameworks/sproutcore/apps/test_controls/main.js +0 -14
- data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +0 -158
- data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +0 -53
- data/lib/frameworks/sproutcore/apps/test_controls/resources/flow_layout_page.js +0 -85
- data/lib/frameworks/sproutcore/apps/test_controls/resources/list_page.js +0 -40
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.css +0 -60
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +0 -151
- data/lib/frameworks/sproutcore/apps/test_controls/resources/panels_page.js +0 -62
- data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +0 -33
- data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +0 -55
- data/lib/frameworks/sproutcore/apps/test_controls/resources/scroll_page.js +0 -77
- data/lib/frameworks/sproutcore/apps/test_controls/resources/segmented_page.js +0 -99
- data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +0 -75
- data/lib/frameworks/sproutcore/apps/test_controls/resources/sliders_page.js +0 -54
- data/lib/frameworks/sproutcore/apps/test_controls/resources/split_page.js +0 -141
- data/lib/frameworks/sproutcore/apps/test_controls/resources/strings.js +0 -50
- data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +0 -53
- data/lib/frameworks/sproutcore/apps/test_controls/resources/text_field_page.js +0 -65
- data/lib/frameworks/sproutcore/apps/test_controls/theme.js +0 -34
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/detail.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/source.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/target.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/tests.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/models/target.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/models/test.js +0 -15
- data/lib/frameworks/sproutcore/apps/tests/tests/views/offset_checkbox.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/console.js +0 -21
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js
CHANGED
@@ -38,4 +38,11 @@ test("Tests stolen from Prototype.js", function() {
|
|
38
38
|
// some of these strings are REALLY LONG so we don't want to write them out
|
39
39
|
ok(SC.RenderContext.escapeHTML(tests[idx++]) === tests[idx]);
|
40
40
|
}
|
41
|
-
});
|
41
|
+
});
|
42
|
+
|
43
|
+
test("Should accept number argument", function() {
|
44
|
+
var number = 12345.6789,
|
45
|
+
numStr = number.toString();
|
46
|
+
|
47
|
+
equals(numStr, SC.RenderContext.escapeHTML(number), "Properly produces string when invoked with a number argument");
|
48
|
+
});
|
@@ -19,7 +19,7 @@ test("should invoke method string after specified time", function() {
|
|
19
19
|
});
|
20
20
|
o.invokeLater('func', 200) ;
|
21
21
|
SC.RunLoop.end() ;
|
22
|
-
|
22
|
+
|
23
23
|
var tries = 20 ;
|
24
24
|
var f = function f() {
|
25
25
|
if (!fired && --tries >= 0) {
|
@@ -29,7 +29,7 @@ test("should invoke method string after specified time", function() {
|
|
29
29
|
equals(YES, fired, 'did not fire') ;
|
30
30
|
window.start() ; // starts the test runner
|
31
31
|
} ;
|
32
|
-
|
32
|
+
|
33
33
|
stop() ; // stops the test runner
|
34
34
|
setTimeout(f, 300) ;
|
35
35
|
});
|
@@ -42,7 +42,7 @@ test("should invoke method instance after specified time", function() {
|
|
42
42
|
});
|
43
43
|
o.invokeLater(o.func, 200) ;
|
44
44
|
SC.RunLoop.end() ;
|
45
|
-
|
45
|
+
|
46
46
|
var tries = 20 ;
|
47
47
|
var f = function f() {
|
48
48
|
if (!fired && --tries >= 0) {
|
@@ -52,7 +52,7 @@ test("should invoke method instance after specified time", function() {
|
|
52
52
|
equals(YES, fired, 'did not fire') ;
|
53
53
|
window.start() ; // starts the test runner
|
54
54
|
} ;
|
55
|
-
|
55
|
+
|
56
56
|
stop() ; // stops the test runner
|
57
57
|
setTimeout(f, 300) ;
|
58
58
|
});
|
@@ -65,7 +65,7 @@ test("should invoke method string immediately if no time passed", function() {
|
|
65
65
|
});
|
66
66
|
o.invokeLater('func') ;
|
67
67
|
SC.RunLoop.end() ;
|
68
|
-
|
68
|
+
|
69
69
|
var tries = 20 ;
|
70
70
|
var f = function f() {
|
71
71
|
if (!fired && --tries >= 0) {
|
@@ -75,7 +75,7 @@ test("should invoke method string immediately if no time passed", function() {
|
|
75
75
|
equals(YES, fired, 'did not fire') ;
|
76
76
|
window.start() ; // starts the test runner
|
77
77
|
} ;
|
78
|
-
|
78
|
+
|
79
79
|
stop() ; // stops the test runner
|
80
80
|
setTimeout(f, 300) ;
|
81
81
|
});
|
@@ -84,15 +84,15 @@ test("should automatically bind with arguments if passed", function() {
|
|
84
84
|
SC.RunLoop.begin() ;
|
85
85
|
var fired = NO ;
|
86
86
|
var g1 = null, g2 = null ; target = null ;
|
87
|
-
|
87
|
+
|
88
88
|
var o = SC.Object.create({
|
89
|
-
func: function(arg1, arg2) {
|
89
|
+
func: function(arg1, arg2) {
|
90
90
|
g1 = arg1 ; g2 = arg2 ; fired = YES ; target = this ;
|
91
91
|
}
|
92
92
|
});
|
93
93
|
o.invokeLater('func', 200, 'ARG1', 'ARG2') ;
|
94
94
|
SC.RunLoop.end() ;
|
95
|
-
|
95
|
+
|
96
96
|
var tries = 20 ;
|
97
97
|
var f = function f() {
|
98
98
|
if (!fired && --tries >= 0) {
|
@@ -105,7 +105,7 @@ test("should automatically bind with arguments if passed", function() {
|
|
105
105
|
equals(target, o, 'target') ;
|
106
106
|
window.start() ; // starts the test runner
|
107
107
|
} ;
|
108
|
-
|
108
|
+
|
109
109
|
stop() ; // stops the test runner
|
110
110
|
setTimeout(f, 300) ;
|
111
111
|
});
|
@@ -117,10 +117,10 @@ test("should invoke function with target after specified time", function() {
|
|
117
117
|
var fired = NO ;
|
118
118
|
var target = null;
|
119
119
|
var o = SC.Object.create() ;
|
120
|
-
var func = function() { fired = YES; target = this; } ;
|
120
|
+
var func = function() { fired = YES; target = this; } ;
|
121
121
|
func.invokeLater(o, 200) ;
|
122
122
|
SC.RunLoop.end() ;
|
123
|
-
|
123
|
+
|
124
124
|
var tries = 20 ;
|
125
125
|
var f = function f() {
|
126
126
|
if (!fired && --tries >= 0) {
|
@@ -131,7 +131,7 @@ test("should invoke function with target after specified time", function() {
|
|
131
131
|
equals(target, o, 'target') ;
|
132
132
|
window.start() ; // starts the test runner
|
133
133
|
} ;
|
134
|
-
|
134
|
+
|
135
135
|
stop() ; // stops the test runner
|
136
136
|
setTimeout(f, 300) ;
|
137
137
|
});
|
@@ -139,10 +139,10 @@ test("should invoke function with target after specified time", function() {
|
|
139
139
|
test("should invoke object with no target after specified time", function() {
|
140
140
|
SC.RunLoop.begin() ;
|
141
141
|
var fired = NO ;
|
142
|
-
var func = function() { fired = YES; } ;
|
142
|
+
var func = function() { fired = YES; } ;
|
143
143
|
func.invokeLater(null, 200) ;
|
144
144
|
SC.RunLoop.end() ;
|
145
|
-
|
145
|
+
|
146
146
|
var tries = 20 ;
|
147
147
|
var f = function f() {
|
148
148
|
if (!fired && --tries >= 0) {
|
@@ -152,7 +152,7 @@ test("should invoke object with no target after specified time", function() {
|
|
152
152
|
equals(YES, fired, 'did not fire') ;
|
153
153
|
window.start() ; // starts the test runner
|
154
154
|
} ;
|
155
|
-
|
155
|
+
|
156
156
|
stop() ; // stops the test runner
|
157
157
|
setTimeout(f, 300) ;
|
158
158
|
});
|
@@ -161,10 +161,10 @@ test("should invoke function immediately if no time passed", function() {
|
|
161
161
|
SC.RunLoop.begin() ;
|
162
162
|
var fired = NO ;
|
163
163
|
var o = SC.Object.create() ;
|
164
|
-
var func = function() { fired = YES; } ;
|
164
|
+
var func = function() { fired = YES; } ;
|
165
165
|
func.invokeLater(o) ;
|
166
166
|
SC.RunLoop.end() ;
|
167
|
-
|
167
|
+
|
168
168
|
var tries = 20 ;
|
169
169
|
var f = function f() {
|
170
170
|
if (!fired && --tries >= 0) {
|
@@ -174,7 +174,7 @@ test("should invoke function immediately if no time passed", function() {
|
|
174
174
|
equals(YES, fired, 'did not fire') ;
|
175
175
|
window.start() ; // starts the test runner
|
176
176
|
} ;
|
177
|
-
|
177
|
+
|
178
178
|
stop() ; // stops the test runner
|
179
179
|
setTimeout(f, 300) ;
|
180
180
|
});
|
@@ -183,14 +183,14 @@ test("should automatically bind with arguments if passed", function() {
|
|
183
183
|
SC.RunLoop.begin() ;
|
184
184
|
var fired = NO ;
|
185
185
|
var g1 = null, g2 = null ; target = null ;
|
186
|
-
|
186
|
+
|
187
187
|
var o = SC.Object.create() ;
|
188
|
-
var func = function(arg1, arg2) {
|
188
|
+
var func = function(arg1, arg2) {
|
189
189
|
g1 = arg1 ; g2 = arg2 ; fired = YES ; target = this ;
|
190
|
-
} ;
|
190
|
+
} ;
|
191
191
|
func.invokeLater(o, 200, 'ARG1', 'ARG2') ;
|
192
192
|
SC.RunLoop.end() ;
|
193
|
-
|
193
|
+
|
194
194
|
var tries = 20 ;
|
195
195
|
var f = function f() {
|
196
196
|
if (!fired && --tries >= 0) {
|
@@ -203,7 +203,7 @@ test("should automatically bind with arguments if passed", function() {
|
|
203
203
|
equals(target, o, 'target') ;
|
204
204
|
window.start() ; // starts the test runner
|
205
205
|
} ;
|
206
|
-
|
206
|
+
|
207
207
|
stop() ; // stops the test runner
|
208
208
|
setTimeout(f, 300) ;
|
209
209
|
});
|
@@ -26,7 +26,7 @@ module("SC.offset", {
|
|
26
26
|
// the offset by viewport will always equal offset by document), we simulate an app that uses a
|
27
27
|
// scrollable viewport to test the validity of the functions.
|
28
28
|
var viewportEl;
|
29
|
-
if (SC.browser.
|
29
|
+
if (SC.browser.isMobileSafari) {
|
30
30
|
viewportEl = $("[name='viewport']")[0];
|
31
31
|
|
32
32
|
viewportEl.setAttribute('content','initial-scale=0.8, minimum-scale=0.5, maximum-scale=1.2, user-scalable=yes, width=device-height');
|
@@ -56,15 +56,15 @@ module("SC.offset", {
|
|
56
56
|
// Useful for debugging in iOS
|
57
57
|
// /** Allow default touch events */
|
58
58
|
// touchStart: function(touch) {
|
59
|
-
// if (SC.browser.
|
59
|
+
// if (SC.browser.isMobileSafari) touch.allowDefault();
|
60
60
|
// },
|
61
61
|
//
|
62
62
|
// touchesDragged: function(evt, touches) {
|
63
|
-
// if (SC.browser.
|
63
|
+
// if (SC.browser.isMobileSafari) evt.allowDefault();
|
64
64
|
// },
|
65
65
|
//
|
66
66
|
// touchEnd: function(touch) {
|
67
|
-
// if (SC.browser.
|
67
|
+
// if (SC.browser.isMobileSafari) touch.allowDefault();
|
68
68
|
// }
|
69
69
|
});
|
70
70
|
pane.append();
|
@@ -78,7 +78,7 @@ module("SC.offset", {
|
|
78
78
|
|
79
79
|
teardown: function() {
|
80
80
|
// Useful for debugging in iOS
|
81
|
-
// if (!SC.browser.
|
81
|
+
// if (!SC.browser.isMobileSafari) {
|
82
82
|
pane.remove();
|
83
83
|
pane = view1 = view2 = view3 = view4 = null;
|
84
84
|
// }
|
@@ -88,7 +88,6 @@ if (SC.platform.supportsCSSTransitions) {
|
|
88
88
|
|
89
89
|
// TODO: Test this better
|
90
90
|
ok(data.event, "has event");
|
91
|
-
equals(data.propertyName, 'left', "propertyName is 'left'");
|
92
91
|
equals(data.view, view, "view is correct");
|
93
92
|
equals(data.isCancelled, false, "animation is not cancelled");
|
94
93
|
});
|
@@ -119,33 +118,58 @@ if (SC.platform.supportsCSSTransitions) {
|
|
119
118
|
});
|
120
119
|
|
121
120
|
// Pretty sure this does the job
|
122
|
-
test("callbacks should be called for
|
121
|
+
test("callbacks should be called only once for a grouped animation", function(){
|
123
122
|
stop(2000);
|
124
123
|
var stopped = true;
|
125
124
|
|
126
|
-
expect(
|
127
|
-
var propertyNames = "top left".w();
|
125
|
+
expect(1);
|
128
126
|
|
129
127
|
SC.RunLoop.begin();
|
130
|
-
|
131
|
-
view.invokeLater('animate', 1, { top: 100, left: 100 }, 0.500, function(data) {
|
128
|
+
view.invokeLater('animate', 1, { top: 100, left: 100 }, 0.250, function(data) {
|
132
129
|
if (stopped) {
|
133
|
-
start();
|
134
130
|
stopped = false;
|
131
|
+
// Continue on in a short moment. Before the test times out, but after
|
132
|
+
// enough time for a second callback to possibly come in.
|
133
|
+
setTimeout(function() {
|
134
|
+
start();
|
135
|
+
}, 100);
|
135
136
|
}
|
136
137
|
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
138
|
+
ok(true, 'callback called back');
|
139
|
+
});
|
140
|
+
SC.RunLoop.end();
|
141
|
+
});
|
142
|
+
|
143
|
+
// This behavior should be up for debate. Does the callback call immediately, or does it wait until the end of
|
144
|
+
// the specified animation period? Currently we're calling it immediately.
|
145
|
+
test("callback should be called immediately when a property is animated to its current value.", function() {
|
146
|
+
|
147
|
+
stop(2000);
|
148
|
+
|
149
|
+
expect(1);
|
150
|
+
|
151
|
+
SC.RunLoop.begin();
|
152
|
+
view.invokeLater('animate', 1, 'top', view.getPath('layout.top'), 0.250, function(){
|
153
|
+
ok(true, 'callback called back');
|
154
|
+
start();
|
155
|
+
});
|
156
|
+
SC.RunLoop.end();
|
157
|
+
});
|
158
|
+
|
159
|
+
test("callback should be called when a property is animated with a duration of zero.", function() {
|
160
|
+
stop(2000);
|
161
|
+
|
162
|
+
expect(1);
|
142
163
|
|
143
|
-
|
164
|
+
SC.RunLoop.begin();
|
165
|
+
view.invokeLater('animate', 1, 'top', 20, 0, function(){
|
166
|
+
ok(true, 'callback called back');
|
167
|
+
start();
|
144
168
|
});
|
145
169
|
SC.RunLoop.end();
|
146
170
|
});
|
147
171
|
|
148
|
-
test("multiple animations should be able to run simultaneously", function(){
|
172
|
+
test("multiple animations should be able to run simultaneously", function() {
|
149
173
|
stop(2000);
|
150
174
|
|
151
175
|
expect(2);
|
@@ -180,7 +204,7 @@ if (SC.platform.supportsCSSTransitions) {
|
|
180
204
|
test("should not cancel callback when value hasn't changed", function() {
|
181
205
|
var callbacks = 0, wasCancelled = NO, check = 0;
|
182
206
|
stop(2000);
|
183
|
-
|
207
|
+
|
184
208
|
SC.RunLoop.begin();
|
185
209
|
view.invokeLater(function() {
|
186
210
|
// this triggers the initial layoutStyle code
|
@@ -192,12 +216,12 @@ if (SC.platform.supportsCSSTransitions) {
|
|
192
216
|
view.displayDidChange();
|
193
217
|
}, 1);
|
194
218
|
SC.RunLoop.end();
|
195
|
-
|
219
|
+
|
196
220
|
setTimeout(function() {
|
197
221
|
// capture the callbacks value
|
198
222
|
check = callbacks;
|
199
223
|
}, 250);
|
200
|
-
|
224
|
+
|
201
225
|
setTimeout(function() {
|
202
226
|
start();
|
203
227
|
equals(check, 0, "the callback should not have been cancelled initially");
|
@@ -206,6 +230,46 @@ if (SC.platform.supportsCSSTransitions) {
|
|
206
230
|
}, 1000);
|
207
231
|
});
|
208
232
|
|
233
|
+
/**
|
234
|
+
There was a bug in animation that once one property was animated, a null
|
235
|
+
version of it existed in _activeAnimations, such that when another property
|
236
|
+
was animated it would throw an exception iterating through _activeAnimations
|
237
|
+
and not expecting a null value.
|
238
|
+
*/
|
239
|
+
test("animating different attributes at different times should not throw an error" , function(){
|
240
|
+
// Run test.
|
241
|
+
stop(2000);
|
242
|
+
|
243
|
+
expect(0);
|
244
|
+
|
245
|
+
// Override and wrap the problematic method to capture the error.
|
246
|
+
view.layoutStyleCalculator.transitionDidEnd = function() {
|
247
|
+
try {
|
248
|
+
SC.View.LayoutStyleCalculator.prototype.transitionDidEnd.apply(this, arguments);
|
249
|
+
ok(true);
|
250
|
+
} catch (ex) {
|
251
|
+
ok(false);
|
252
|
+
}
|
253
|
+
};
|
254
|
+
|
255
|
+
SC.RunLoop.begin();
|
256
|
+
// We shouldn't have to use invokeLater, but it's the only way to get this to work!
|
257
|
+
view.invokeLater(function() {
|
258
|
+
view.animate('left', 75, 0.2);
|
259
|
+
}, 1);
|
260
|
+
SC.RunLoop.end();
|
261
|
+
|
262
|
+
setTimeout(function() {
|
263
|
+
SC.RunLoop.begin();
|
264
|
+
view.animate('top', 50, 0.2);
|
265
|
+
SC.RunLoop.end();
|
266
|
+
}, 400);
|
267
|
+
|
268
|
+
setTimeout(function() {
|
269
|
+
start();
|
270
|
+
}, 1000);
|
271
|
+
});
|
272
|
+
|
209
273
|
test("should handle transform attributes", function(){
|
210
274
|
SC.RunLoop.begin();
|
211
275
|
view.animate('rotateX', 45, { duration: 1 });
|
@@ -302,8 +366,7 @@ if (SC.platform.supportsCSSTransitions) {
|
|
302
366
|
stop(2000);
|
303
367
|
var stopped = true;
|
304
368
|
|
305
|
-
expect(
|
306
|
-
var propertyNames = "top left scale".w();
|
369
|
+
expect(1);
|
307
370
|
|
308
371
|
SC.RunLoop.begin();
|
309
372
|
// We shouldn't have to use invokeLater, but it's the only way to get this to work!
|
@@ -313,13 +376,7 @@ if (SC.platform.supportsCSSTransitions) {
|
|
313
376
|
stopped = false;
|
314
377
|
}
|
315
378
|
|
316
|
-
|
317
|
-
if (propertyNames.contains(data.propertyName)) {
|
318
|
-
propertyNames.removeObject(data.propertyName);
|
319
|
-
hasProperty = true;
|
320
|
-
}
|
321
|
-
|
322
|
-
ok(hasProperty, "has property: "+data.propertyName);
|
379
|
+
ok(true);
|
323
380
|
});
|
324
381
|
SC.RunLoop.end();
|
325
382
|
});
|
@@ -372,11 +429,14 @@ test("should update layout", function(){
|
|
372
429
|
});
|
373
430
|
|
374
431
|
test("should still run callback", function(){
|
375
|
-
|
432
|
+
stop(2000);
|
433
|
+
|
434
|
+
expect(1);
|
376
435
|
|
377
436
|
SC.RunLoop.begin();
|
378
|
-
view.animate(
|
437
|
+
view.animate({ top: 200, left: 100 }, 1, function() {
|
438
|
+
ok(true, "callback called");
|
439
|
+
start();
|
440
|
+
});
|
379
441
|
SC.RunLoop.end();
|
380
|
-
|
381
|
-
ok(ranCallback, "should run callback");
|
382
442
|
});
|
@@ -26,10 +26,11 @@ test("should apply bound class names to the element", function() {
|
|
26
26
|
|
27
27
|
test("should add, remove, or change class names if changed after element is created", function() {
|
28
28
|
var view = SC.View.create({
|
29
|
-
classNameBindings: ['priority', 'isUrgent', 'canIgnore'],
|
29
|
+
classNameBindings: ['priority', 'isUrgent', 'isClassified:classified', 'canIgnore'],
|
30
30
|
|
31
31
|
priority: 'high',
|
32
32
|
isUrgent: true,
|
33
|
+
isClassified: true,
|
33
34
|
canIgnore: false
|
34
35
|
});
|
35
36
|
|
@@ -37,26 +38,33 @@ test("should add, remove, or change class names if changed after element is crea
|
|
37
38
|
|
38
39
|
view.set('priority', 'orange');
|
39
40
|
view.set('isUrgent', false);
|
41
|
+
view.set('isClassified', false);
|
40
42
|
view.set('canIgnore', true);
|
41
43
|
|
42
44
|
ok(view.$().hasClass('orange'), "updates string values");
|
43
45
|
ok(!view.$().hasClass('high'), "removes old string value");
|
44
46
|
|
45
|
-
ok(!view.$().hasClass('is-urgent', "removes dasherized class when changed from true to false")
|
47
|
+
ok(!view.$().hasClass('is-urgent'), "removes dasherized class when changed from true to false");
|
48
|
+
ok(!view.$().hasClass('classified'), "removes customized class name when changed from true to false");
|
46
49
|
ok(view.$().hasClass('can-ignore'), "adds dasherized class when changed from false to true");
|
47
50
|
});
|
48
51
|
|
49
52
|
test("should preserve class names applied via classNameBindings when view layer is updated",
|
50
53
|
function(){
|
51
54
|
var view = SC.View.create({
|
52
|
-
classNameBindings: ['isUrgent'],
|
55
|
+
classNameBindings: ['isUrgent', 'isClassified:classified'],
|
56
|
+
isClassified: true,
|
53
57
|
isUrgent: false
|
54
58
|
});
|
55
59
|
view.createLayer();
|
56
|
-
ok(!view.$().hasClass('
|
60
|
+
ok(!view.$().hasClass('can-ignore'), "does not add false Boolean values as class");
|
61
|
+
ok(view.$().hasClass('classified'), "supports customizing class name for Boolean values");
|
62
|
+
view.set('isClassified', false);
|
57
63
|
view.set('isUrgent', true);
|
58
|
-
ok(view.$().hasClass('is-urgent', "adds dasherized class when changed from
|
64
|
+
ok(view.$().hasClass('is-urgent'), "adds dasherized class when changed from false to true");
|
65
|
+
ok(!view.$().hasClass('classified'), "removes customized class name when changed from true to false");
|
59
66
|
view.set('layerNeedsUpdate', YES);
|
60
67
|
view.updateLayer();
|
61
|
-
ok(view.$().hasClass('is-urgent', "still has class when view display property is updated")
|
68
|
+
ok(view.$().hasClass('is-urgent'), "still has class when view display property is updated");
|
69
|
+
ok(!view.$().hasClass('classified'), "still does not have customized class when view display property is updated");
|
62
70
|
});
|