unpoly-rails 0.61.0 → 2.0.0.pre.rc3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of unpoly-rails might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.yardopts +1 -1
- data/CHANGELOG.md +94 -1
- data/README.md +3 -11
- data/README_RAILS.md +295 -14
- data/dist/unpoly-bootstrap3.css +9 -14
- data/dist/unpoly-bootstrap3.js +4 -18
- data/dist/unpoly-bootstrap3.min.css +1 -1
- data/dist/unpoly-bootstrap3.min.js +1 -1
- data/dist/unpoly-bootstrap4.css +9 -0
- data/dist/unpoly-bootstrap4.js +16 -0
- data/dist/unpoly-bootstrap4.min.css +1 -0
- data/dist/unpoly-bootstrap4.min.js +1 -0
- data/dist/unpoly-bootstrap5.css +9 -0
- data/dist/unpoly-bootstrap5.js +14 -0
- data/dist/unpoly-bootstrap5.min.css +1 -0
- data/dist/unpoly-bootstrap5.min.js +1 -0
- data/dist/unpoly-migrate.js +1213 -0
- data/dist/unpoly-migrate.min.js +1 -0
- data/dist/unpoly.css +109 -140
- data/dist/unpoly.js +15439 -10434
- data/dist/unpoly.min.css +1 -1
- data/dist/unpoly.min.js +6 -4
- data/lib/unpoly-rails.rb +9 -3
- data/lib/unpoly/rails/change.rb +372 -0
- data/lib/unpoly/rails/change/cache.rb +26 -0
- data/lib/unpoly/rails/change/context.rb +80 -0
- data/lib/unpoly/rails/change/field.rb +117 -0
- data/lib/unpoly/rails/change/field_definition.rb +74 -0
- data/lib/unpoly/rails/change/layer.rb +60 -0
- data/lib/unpoly/rails/controller.rb +47 -0
- data/lib/unpoly/rails/error.rb +5 -0
- data/lib/unpoly/rails/request_echo_headers.rb +2 -2
- data/lib/unpoly/rails/version.rb +1 -1
- data/lib/unpoly/tasks.rb +45 -0
- metadata +43 -314
- data/.gitignore +0 -10
- data/.ruby-version +0 -2
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -45
- data/Rakefile +0 -144
- data/bower.json +0 -27
- data/design/animation-ghosting.txt +0 -72
- data/design/design.txt +0 -34
- data/design/draft.html.erb +0 -48
- data/design/draft.rb +0 -9
- data/design/es6.js +0 -32
- data/design/ghost-debugging.txt +0 -118
- data/design/homepage.txt +0 -236
- data/design/ie11.txt +0 -9
- data/design/measure_import_node.js +0 -330
- data/design/measure_jquery/element_list.js +0 -41
- data/design/measure_jquery/up.on_vs_addEventListener.js +0 -56
- data/design/positioning.txt +0 -28
- data/design/query-params-in-form-actions/cases.html +0 -125
- data/design/rename.txt +0 -0
- data/design/test_rejected_promise.txt +0 -5
- data/design/unpoly errors.txt +0 -19
- data/lib/assets/javascripts/unpoly-bootstrap3.coffee +0 -2
- data/lib/assets/javascripts/unpoly-bootstrap3/feedback-ext.coffee +0 -5
- data/lib/assets/javascripts/unpoly-bootstrap3/form-ext.coffee +0 -1
- data/lib/assets/javascripts/unpoly-bootstrap3/modal-ext.coffee +0 -14
- data/lib/assets/javascripts/unpoly-bootstrap3/viewport-ext.coffee +0 -5
- data/lib/assets/javascripts/unpoly.coffee +0 -28
- data/lib/assets/javascripts/unpoly/browser.coffee.erb +0 -236
- data/lib/assets/javascripts/unpoly/classes/body_shifter.coffee +0 -36
- data/lib/assets/javascripts/unpoly/classes/cache.coffee +0 -127
- data/lib/assets/javascripts/unpoly/classes/compile_pass.coffee +0 -93
- data/lib/assets/javascripts/unpoly/classes/config.coffee +0 -9
- data/lib/assets/javascripts/unpoly/classes/css_transition.coffee +0 -118
- data/lib/assets/javascripts/unpoly/classes/divertible_chain.coffee +0 -39
- data/lib/assets/javascripts/unpoly/classes/event_listener.coffee +0 -116
- data/lib/assets/javascripts/unpoly/classes/extract_cascade.coffee +0 -86
- data/lib/assets/javascripts/unpoly/classes/extract_plan.coffee +0 -111
- data/lib/assets/javascripts/unpoly/classes/field_observer.coffee +0 -80
- data/lib/assets/javascripts/unpoly/classes/focus_follower.coffee +0 -29
- data/lib/assets/javascripts/unpoly/classes/follow_variant.coffee +0 -56
- data/lib/assets/javascripts/unpoly/classes/html_parser.coffee +0 -46
- data/lib/assets/javascripts/unpoly/classes/motion_controller.coffee +0 -157
- data/lib/assets/javascripts/unpoly/classes/params.coffee.erb +0 -543
- data/lib/assets/javascripts/unpoly/classes/record.coffee +0 -22
- data/lib/assets/javascripts/unpoly/classes/rect.js +0 -21
- data/lib/assets/javascripts/unpoly/classes/request.coffee +0 -246
- data/lib/assets/javascripts/unpoly/classes/response.coffee +0 -157
- data/lib/assets/javascripts/unpoly/classes/reveal_motion.coffee +0 -102
- data/lib/assets/javascripts/unpoly/classes/scroll_motion.coffee +0 -67
- data/lib/assets/javascripts/unpoly/classes/selector.coffee +0 -60
- data/lib/assets/javascripts/unpoly/classes/store/memory.coffee +0 -26
- data/lib/assets/javascripts/unpoly/classes/store/session.coffee +0 -59
- data/lib/assets/javascripts/unpoly/classes/tether.coffee +0 -105
- data/lib/assets/javascripts/unpoly/classes/url_set.coffee +0 -32
- data/lib/assets/javascripts/unpoly/cookie.coffee +0 -56
- data/lib/assets/javascripts/unpoly/element.coffee.erb +0 -1126
- data/lib/assets/javascripts/unpoly/event.coffee.erb +0 -438
- data/lib/assets/javascripts/unpoly/feedback.coffee +0 -353
- data/lib/assets/javascripts/unpoly/form.coffee.erb +0 -1032
- data/lib/assets/javascripts/unpoly/fragment.coffee.erb +0 -924
- data/lib/assets/javascripts/unpoly/framework.coffee +0 -67
- data/lib/assets/javascripts/unpoly/history.coffee +0 -268
- data/lib/assets/javascripts/unpoly/legacy.coffee +0 -60
- data/lib/assets/javascripts/unpoly/link.coffee.erb +0 -622
- data/lib/assets/javascripts/unpoly/log.coffee +0 -248
- data/lib/assets/javascripts/unpoly/modal.coffee.erb +0 -825
- data/lib/assets/javascripts/unpoly/motion.coffee.erb +0 -668
- data/lib/assets/javascripts/unpoly/namespace.coffee.erb +0 -5
- data/lib/assets/javascripts/unpoly/popup.coffee.erb +0 -515
- data/lib/assets/javascripts/unpoly/protocol.coffee +0 -298
- data/lib/assets/javascripts/unpoly/proxy.coffee +0 -672
- data/lib/assets/javascripts/unpoly/radio.coffee +0 -60
- data/lib/assets/javascripts/unpoly/rails.coffee +0 -24
- data/lib/assets/javascripts/unpoly/syntax.coffee.erb +0 -477
- data/lib/assets/javascripts/unpoly/toast.coffee +0 -67
- data/lib/assets/javascripts/unpoly/tooltip.coffee +0 -276
- data/lib/assets/javascripts/unpoly/util.coffee.erb +0 -1676
- data/lib/assets/javascripts/unpoly/viewport.coffee.erb +0 -806
- data/lib/assets/stylesheets/unpoly-bootstrap3.sass +0 -1
- data/lib/assets/stylesheets/unpoly-bootstrap3/modal-ext.sass +0 -27
- data/lib/assets/stylesheets/unpoly.sass +0 -1
- data/lib/assets/stylesheets/unpoly/close.sass +0 -2
- data/lib/assets/stylesheets/unpoly/dom.sass +0 -5
- data/lib/assets/stylesheets/unpoly/layout.sass +0 -2
- data/lib/assets/stylesheets/unpoly/link.sass +0 -2
- data/lib/assets/stylesheets/unpoly/modal.sass +0 -116
- data/lib/assets/stylesheets/unpoly/popup.sass +0 -7
- data/lib/assets/stylesheets/unpoly/toast.sass +0 -33
- data/lib/assets/stylesheets/unpoly/tooltip.sass +0 -62
- data/lib/unpoly/rails/inspector.rb +0 -149
- data/lib/unpoly/rails/inspector_accessor.rb +0 -30
- data/package.json +0 -38
- data/spec_app/.firefox-version +0 -1
- data/spec_app/.gitignore +0 -17
- data/spec_app/.rspec +0 -2
- data/spec_app/Gemfile +0 -32
- data/spec_app/Gemfile.lock +0 -233
- data/spec_app/README.rdoc +0 -28
- data/spec_app/Rakefile +0 -6
- data/spec_app/app/assets/images/.keep +0 -0
- data/spec_app/app/assets/images/favicon.png +0 -0
- data/spec_app/app/assets/images/grid.png +0 -0
- data/spec_app/app/assets/javascripts/bootstrap_manifest.coffee +0 -6
- data/spec_app/app/assets/javascripts/integration_test.coffee +0 -6
- data/spec_app/app/assets/javascripts/jasmine_specs.coffee +0 -6
- data/spec_app/app/assets/stylesheets/_helpers.sass +0 -5
- data/spec_app/app/assets/stylesheets/bootstrap_manifest.sass +0 -2
- data/spec_app/app/assets/stylesheets/integration_test.sass +0 -88
- data/spec_app/app/assets/stylesheets/jasmine_specs.sass +0 -20
- data/spec_app/app/controllers/application_controller.rb +0 -14
- data/spec_app/app/controllers/binding_test_controller.rb +0 -51
- data/spec_app/app/controllers/compiler_test_controller.rb +0 -5
- data/spec_app/app/controllers/css_test_controller.rb +0 -5
- data/spec_app/app/controllers/error_test_controller.rb +0 -5
- data/spec_app/app/controllers/form_test/basics_controller.rb +0 -14
- data/spec_app/app/controllers/form_test/redirects_controller.rb +0 -17
- data/spec_app/app/controllers/form_test/uploads_controller.rb +0 -15
- data/spec_app/app/controllers/hash_test_controller.rb +0 -5
- data/spec_app/app/controllers/method_test_controller.rb +0 -16
- data/spec_app/app/controllers/motion_test_controller.rb +0 -5
- data/spec_app/app/controllers/pages_controller.rb +0 -9
- data/spec_app/app/controllers/replace_test_controller.rb +0 -5
- data/spec_app/app/controllers/reveal_test_controller.rb +0 -5
- data/spec_app/app/controllers/scroll_test_controller.rb +0 -5
- data/spec_app/app/helpers/application_helper.rb +0 -2
- data/spec_app/app/mailers/.keep +0 -0
- data/spec_app/app/models/concerns/.keep +0 -0
- data/spec_app/app/views/compiler_test/timestamp.erb +0 -9
- data/spec_app/app/views/css_test/modal.erb +0 -47
- data/spec_app/app/views/css_test/modal_contents.erb +0 -5
- data/spec_app/app/views/css_test/modal_contents_wide.erb +0 -5
- data/spec_app/app/views/css_test/popup.erb +0 -81
- data/spec_app/app/views/css_test/popup_contents.erb +0 -5
- data/spec_app/app/views/css_test/tooltip.erb +0 -48
- data/spec_app/app/views/error_test/trigger.erb +0 -80
- data/spec_app/app/views/error_test/unexpected_response.erb +0 -3
- data/spec_app/app/views/form_test/basics/new.erb +0 -60
- data/spec_app/app/views/form_test/redirects/new.erb +0 -27
- data/spec_app/app/views/form_test/redirects/target.erb +0 -4
- data/spec_app/app/views/form_test/submission_result.erb +0 -30
- data/spec_app/app/views/form_test/uploads/new.erb +0 -44
- data/spec_app/app/views/hash_test/unpoly.erb +0 -30
- data/spec_app/app/views/hash_test/vanilla.erb +0 -13
- data/spec_app/app/views/layouts/integration_test.erb +0 -22
- data/spec_app/app/views/layouts/jasmine_rails/spec_runner.html.erb +0 -20
- data/spec_app/app/views/method_test/form_target.erb +0 -17
- data/spec_app/app/views/method_test/page1.erb +0 -11
- data/spec_app/app/views/method_test/page2.erb +0 -6
- data/spec_app/app/views/motion_test/animations.erb +0 -16
- data/spec_app/app/views/motion_test/transitions.erb +0 -13
- data/spec_app/app/views/pages/start.erb +0 -79
- data/spec_app/app/views/replace_test/_nav.erb +0 -6
- data/spec_app/app/views/replace_test/page1.erb +0 -14
- data/spec_app/app/views/replace_test/page2.erb +0 -14
- data/spec_app/app/views/replace_test/table.erb +0 -16
- data/spec_app/app/views/reveal_test/long1.erb +0 -17
- data/spec_app/app/views/reveal_test/long2.erb +0 -17
- data/spec_app/app/views/reveal_test/within_document_viewport.erb +0 -24
- data/spec_app/app/views/reveal_test/within_overflowing_div_viewport.erb +0 -28
- data/spec_app/app/views/scroll_test/long1.erb +0 -30
- data/spec_app/bin/bundle +0 -3
- data/spec_app/bin/rails +0 -8
- data/spec_app/bin/rake +0 -8
- data/spec_app/bin/setup +0 -29
- data/spec_app/bin/spring +0 -18
- data/spec_app/config.ru +0 -4
- data/spec_app/config/application.rb +0 -28
- data/spec_app/config/boot.rb +0 -3
- data/spec_app/config/database.yml +0 -25
- data/spec_app/config/environment.rb +0 -5
- data/spec_app/config/environments/development.rb +0 -41
- data/spec_app/config/environments/production.rb +0 -79
- data/spec_app/config/environments/test.rb +0 -42
- data/spec_app/config/initializers/assets.rb +0 -19
- data/spec_app/config/initializers/backtrace_silencers.rb +0 -7
- data/spec_app/config/initializers/bower_rails.rb +0 -16
- data/spec_app/config/initializers/cookies_serializer.rb +0 -3
- data/spec_app/config/initializers/filter_parameter_logging.rb +0 -4
- data/spec_app/config/initializers/inflections.rb +0 -16
- data/spec_app/config/initializers/mime_types.rb +0 -4
- data/spec_app/config/initializers/session_store.rb +0 -3
- data/spec_app/config/initializers/wrap_parameters.rb +0 -14
- data/spec_app/config/locales/en.yml +0 -23
- data/spec_app/config/routes.rb +0 -30
- data/spec_app/config/secrets.yml +0 -22
- data/spec_app/db/schema.rb +0 -23
- data/spec_app/db/seeds.rb +0 -7
- data/spec_app/lib/assets/.keep +0 -0
- data/spec_app/lib/tasks/.keep +0 -0
- data/spec_app/lib/tasks/cucumber.rake +0 -65
- data/spec_app/log/.keep +0 -0
- data/spec_app/public/404.html +0 -67
- data/spec_app/public/422.html +0 -67
- data/spec_app/public/500.html +0 -66
- data/spec_app/public/favicon.ico +0 -0
- data/spec_app/public/robots.txt +0 -5
- data/spec_app/script/cucumber +0 -10
- data/spec_app/spec/controllers/binding_test_controller_spec.rb +0 -248
- data/spec_app/spec/javascripts/helpers/agent_detector.coffee +0 -20
- data/spec_app/spec/javascripts/helpers/async_sequence.js.coffee +0 -103
- data/spec_app/spec/javascripts/helpers/browser_switches.js.coffee +0 -21
- data/spec_app/spec/javascripts/helpers/enable_logging.js.coffee +0 -2
- data/spec_app/spec/javascripts/helpers/fixture.js.coffee +0 -25
- data/spec_app/spec/javascripts/helpers/index.js.coffee +0 -1
- data/spec_app/spec/javascripts/helpers/jquery_no_conflict.js +0 -1
- data/spec_app/spec/javascripts/helpers/knife.js.coffee +0 -69
- data/spec_app/spec/javascripts/helpers/last_request.js.coffee +0 -25
- data/spec_app/spec/javascripts/helpers/mock_ajax.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/mock_clock.js.coffee +0 -2
- data/spec_app/spec/javascripts/helpers/parse_form_data.js.coffee +0 -24
- data/spec_app/spec/javascripts/helpers/promise_state.js +0 -18
- data/spec_app/spec/javascripts/helpers/protect_jasmine_runner.coffee +0 -12
- data/spec_app/spec/javascripts/helpers/remove_body_margin.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/reset_history.js.coffee +0 -23
- data/spec_app/spec/javascripts/helpers/reset_knife.js.coffee +0 -2
- data/spec_app/spec/javascripts/helpers/reset_up.js.coffee +0 -25
- data/spec_app/spec/javascripts/helpers/restore_body_scroll.js.coffee +0 -5
- data/spec_app/spec/javascripts/helpers/show_lib_versions.coffee +0 -12
- data/spec_app/spec/javascripts/helpers/spec_util.coffee +0 -47
- data/spec_app/spec/javascripts/helpers/to_be_around.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_be_array.coffee +0 -5
- data/spec_app/spec/javascripts/helpers/to_be_attached.coffee +0 -9
- data/spec_app/spec/javascripts/helpers/to_be_blank.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_be_detached.coffee +0 -9
- data/spec_app/spec/javascripts/helpers/to_be_element.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_be_error.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_be_given.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_be_hidden.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_be_jquery.js.coffee +0 -5
- data/spec_app/spec/javascripts/helpers/to_be_missing.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_be_present.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_be_scrolled_to.coffee +0 -11
- data/spec_app/spec/javascripts/helpers/to_be_visible.js.coffee +0 -9
- data/spec_app/spec/javascripts/helpers/to_contain.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_end_with.js.coffee +0 -11
- data/spec_app/spec/javascripts/helpers/to_equal_jquery.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_equal_node_list.coffee +0 -7
- data/spec_app/spec/javascripts/helpers/to_equal_via_is_equal.js.coffee +0 -7
- data/spec_app/spec/javascripts/helpers/to_have_class.js.coffee +0 -10
- data/spec_app/spec/javascripts/helpers/to_have_descendant.js.coffee +0 -10
- data/spec_app/spec/javascripts/helpers/to_have_length.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_have_opacity.coffee +0 -15
- data/spec_app/spec/javascripts/helpers/to_have_own_property.js.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_have_request_method.js.coffee +0 -16
- data/spec_app/spec/javascripts/helpers/to_have_text.js.coffee +0 -9
- data/spec_app/spec/javascripts/helpers/to_have_unhandled_rejections.coffee +0 -18
- data/spec_app/spec/javascripts/helpers/to_match_list.coffee +0 -14
- data/spec_app/spec/javascripts/helpers/to_match_selector.coffee +0 -8
- data/spec_app/spec/javascripts/helpers/to_match_text.js.coffee +0 -13
- data/spec_app/spec/javascripts/helpers/to_match_url.coffee +0 -14
- data/spec_app/spec/javascripts/helpers/trigger.js.coffee +0 -200
- data/spec_app/spec/javascripts/helpers/wait_until_dom_ready.js.coffee +0 -5
- data/spec_app/spec/javascripts/support/jasmine.yml +0 -51
- data/spec_app/spec/javascripts/up/browser_spec.js.coffee +0 -150
- data/spec_app/spec/javascripts/up/classes/cache_spec.js.coffee +0 -82
- data/spec_app/spec/javascripts/up/classes/config_spec.coffee +0 -24
- data/spec_app/spec/javascripts/up/classes/divertible_chain_spec.coffee +0 -45
- data/spec_app/spec/javascripts/up/classes/focus_tracker_spec.coffee +0 -34
- data/spec_app/spec/javascripts/up/classes/params_spec.coffee +0 -557
- data/spec_app/spec/javascripts/up/classes/request_spec.coffee +0 -50
- data/spec_app/spec/javascripts/up/classes/scroll_motion_spec.js.coffee +0 -51
- data/spec_app/spec/javascripts/up/classes/store/memory_spec.js.coffee +0 -70
- data/spec_app/spec/javascripts/up/classes/store/session_spec.js.coffee +0 -114
- data/spec_app/spec/javascripts/up/element_spec.coffee +0 -897
- data/spec_app/spec/javascripts/up/event_spec.js.coffee +0 -530
- data/spec_app/spec/javascripts/up/feedback_spec.js.coffee +0 -401
- data/spec_app/spec/javascripts/up/form_spec.js.coffee +0 -1488
- data/spec_app/spec/javascripts/up/fragment_spec.js.coffee +0 -2589
- data/spec_app/spec/javascripts/up/history_spec.js.coffee +0 -340
- data/spec_app/spec/javascripts/up/jquery_spec.js.coffee +0 -4
- data/spec_app/spec/javascripts/up/legacy_spec.js.coffee +0 -27
- data/spec_app/spec/javascripts/up/link_spec.js.coffee +0 -1093
- data/spec_app/spec/javascripts/up/log_spec.js.coffee +0 -119
- data/spec_app/spec/javascripts/up/modal_spec.js.coffee +0 -917
- data/spec_app/spec/javascripts/up/motion_spec.js.coffee +0 -582
- data/spec_app/spec/javascripts/up/popup_spec.js.coffee +0 -507
- data/spec_app/spec/javascripts/up/protocol_spec.js.coffee +0 -39
- data/spec_app/spec/javascripts/up/proxy_spec.js.coffee +0 -1137
- data/spec_app/spec/javascripts/up/radio_spec.js.coffee +0 -212
- data/spec_app/spec/javascripts/up/rails_spec.js.coffee +0 -118
- data/spec_app/spec/javascripts/up/spec_spec.js.coffee +0 -9
- data/spec_app/spec/javascripts/up/syntax_spec.js.coffee +0 -304
- data/spec_app/spec/javascripts/up/toast_spec.js.coffee +0 -37
- data/spec_app/spec/javascripts/up/tooltip_spec.js.coffee +0 -163
- data/spec_app/spec/javascripts/up/util_spec.js.coffee +0 -1420
- data/spec_app/spec/javascripts/up/viewport_spec.js.coffee +0 -655
- data/spec_app/spec/spec_helper.rb +0 -62
- data/spec_app/test/controllers/.keep +0 -0
- data/spec_app/test/fixtures/.keep +0 -0
- data/spec_app/test/helpers/.keep +0 -0
- data/spec_app/test/integration/.keep +0 -0
- data/spec_app/test/mailers/.keep +0 -0
- data/spec_app/test/models/.keep +0 -0
- data/spec_app/test/test_helper.rb +0 -10
- data/spec_app/vendor/asset-libs/es6-promise-4.1.6/es6-promise.auto.js +0 -1159
- data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.bower.json +0 -43
- data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.gitignore +0 -6
- data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.npmignore +0 -10
- data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.pairs +0 -6
- data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.travis.yml +0 -56
- data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/jasmine-ajax.js +0 -790
- data/spec_app/vendor/assets/.keep +0 -0
- data/unpoly-rails.gemspec +0 -24
@@ -1,507 +0,0 @@
|
|
1
|
-
u = up.util
|
2
|
-
e = up.element
|
3
|
-
$ = jQuery
|
4
|
-
|
5
|
-
describe 'up.popup', ->
|
6
|
-
|
7
|
-
u = up.util
|
8
|
-
|
9
|
-
describe 'JavaScript functions', ->
|
10
|
-
|
11
|
-
describe 'up.popup.attach', ->
|
12
|
-
|
13
|
-
beforeEach ->
|
14
|
-
jasmine.addMatchers
|
15
|
-
toSitBelow: (util, customEqualityTesters) ->
|
16
|
-
compare: ($popup, $link) ->
|
17
|
-
popupDims = $popup.get(0).getBoundingClientRect()
|
18
|
-
linkDims = $link.get(0).getBoundingClientRect()
|
19
|
-
pass:
|
20
|
-
Math.abs(popupDims.left - linkDims.left) < 1.0 && Math.abs(popupDims.top - linkDims.bottom) < 1.0
|
21
|
-
|
22
|
-
beforeEach ->
|
23
|
-
@restoreBodyHeight = e.setTemporaryStyle(document.body, minHeight: '3000px')
|
24
|
-
|
25
|
-
afterEach ->
|
26
|
-
@restoreBodyHeight()
|
27
|
-
|
28
|
-
it "loads this link's destination in a popup positioned under the given link", asyncSpec (next) ->
|
29
|
-
$container = $fixture('.container')
|
30
|
-
$container.css
|
31
|
-
position: 'absolute'
|
32
|
-
left: '100px'
|
33
|
-
top: '50px'
|
34
|
-
|
35
|
-
$link = $container.affix('a[href="/path/to"][up-popup=".middle"]').text('link')
|
36
|
-
|
37
|
-
up.popup.attach($link)
|
38
|
-
|
39
|
-
next =>
|
40
|
-
expect(@lastRequest().url).toMatch /\/path\/to$/
|
41
|
-
@respondWith """
|
42
|
-
<div class="before">new-before</div>
|
43
|
-
<div class="middle">new-middle</div>
|
44
|
-
<div class="after">new-after</div>
|
45
|
-
"""
|
46
|
-
|
47
|
-
next =>
|
48
|
-
$popup = $('.up-popup')
|
49
|
-
expect($popup).toBeAttached()
|
50
|
-
expect($popup.find('.middle')).toHaveText('new-middle')
|
51
|
-
expect($popup.find('.before')).not.toBeAttached()
|
52
|
-
expect($popup.find('.after')).not.toBeAttached()
|
53
|
-
expect($popup).toSitBelow($link)
|
54
|
-
|
55
|
-
it 'always makes a request for the given selector, and does not "improve" the selector with a fallback', asyncSpec (next) ->
|
56
|
-
$container = $fixture('.container')
|
57
|
-
$link = $container.affix('a[href="/path/to"][up-popup=".content"]').text('link')
|
58
|
-
up.popup.attach($link)
|
59
|
-
next =>
|
60
|
-
expect(jasmine.Ajax.requests.count()).toEqual(1)
|
61
|
-
headers = @lastRequest().requestHeaders
|
62
|
-
expect(headers['X-Up-Target']).toEqual('.content')
|
63
|
-
|
64
|
-
it 'never resolves the open() promise and shows no error if close() was called before the response was received', asyncSpec (next) ->
|
65
|
-
$span = $fixture('span')
|
66
|
-
openPromise = up.popup.attach($span, url: '/foo', target: '.container')
|
67
|
-
|
68
|
-
next =>
|
69
|
-
up.popup.close()
|
70
|
-
|
71
|
-
next =>
|
72
|
-
respond = => @respondWith('<div class="container">text</div>')
|
73
|
-
expect(respond).not.toThrowError()
|
74
|
-
|
75
|
-
next.await =>
|
76
|
-
expect($('.up-toast')).not.toBeAttached()
|
77
|
-
promise = promiseState(openPromise)
|
78
|
-
promise.then (result) => expect(result.state).toEqual('pending')
|
79
|
-
|
80
|
-
describe 'with { html } option', ->
|
81
|
-
|
82
|
-
it 'extracts the selector from the given HTML string', asyncSpec (next) ->
|
83
|
-
$span = $fixture('span')
|
84
|
-
next.await up.popup.attach($span, target: '.container', html: "<div class='container'>container contents</div>")
|
85
|
-
next => expect($('.up-popup')).toHaveText('container contents')
|
86
|
-
|
87
|
-
describe 'opening a popup while another modal is open', ->
|
88
|
-
|
89
|
-
it 'closes the current popup and wait for its close animation to finish before starting the open animation of a second popup', asyncSpec (next) ->
|
90
|
-
$span = $fixture('span')
|
91
|
-
up.popup.config.openAnimation = 'fade-in'
|
92
|
-
up.popup.config.openDuration = 5
|
93
|
-
up.popup.config.closeAnimation = 'fade-out'
|
94
|
-
up.popup.config.closeDuration = 60
|
95
|
-
|
96
|
-
events = []
|
97
|
-
u.each ['up:popup:open', 'up:popup:opened', 'up:popup:close', 'up:popup:closed'], (event) ->
|
98
|
-
up.on event, -> events.push(event)
|
99
|
-
|
100
|
-
up.popup.attach($span, { target: '.target', html: '<div class="target">response1</div>' })
|
101
|
-
|
102
|
-
next =>
|
103
|
-
# First popup is starting opening animation
|
104
|
-
expect(events).toEqual ['up:popup:open']
|
105
|
-
expect($('.target')).toHaveText('response1')
|
106
|
-
|
107
|
-
next.after 80, ->
|
108
|
-
# First popup has completed opening animation
|
109
|
-
expect(events).toEqual ['up:popup:open', 'up:popup:opened']
|
110
|
-
expect($('.target')).toHaveText('response1')
|
111
|
-
|
112
|
-
# We open another popup, which will cause the first modal to start closing
|
113
|
-
up.popup.attach($span, { target: '.target', html: '<div class="target">response2</div>' })
|
114
|
-
|
115
|
-
next.after 20, ->
|
116
|
-
# Second popup is still waiting for first popup's closing animation to finish.
|
117
|
-
expect(events).toEqual ['up:popup:open', 'up:popup:opened', 'up:popup:close']
|
118
|
-
expect($('.target')).toHaveText('response1')
|
119
|
-
|
120
|
-
next.after 200, ->
|
121
|
-
# First popup has finished closing, second popup has finished opening.
|
122
|
-
expect(events).toEqual ['up:popup:open', 'up:popup:opened', 'up:popup:close', 'up:popup:closed', 'up:popup:open', 'up:popup:opened']
|
123
|
-
expect($('.target')).toHaveText('response2')
|
124
|
-
|
125
|
-
describe 'up.popup.coveredUrl', ->
|
126
|
-
|
127
|
-
describeCapability 'canPushState', ->
|
128
|
-
|
129
|
-
it 'returns the URL behind the popup', asyncSpec (next) ->
|
130
|
-
up.history.config.enabled = true
|
131
|
-
up.history.replace('/foo')
|
132
|
-
expect(up.popup.coveredUrl()).toBeMissing()
|
133
|
-
|
134
|
-
$popupLink = $fixture('a[href="/bar"][up-popup=".container"][up-history="true"]')
|
135
|
-
Trigger.clickSequence($popupLink)
|
136
|
-
|
137
|
-
next =>
|
138
|
-
@respondWith('<div class="container">text</div>')
|
139
|
-
expect(up.popup.coveredUrl()).toMatchUrl('/foo')
|
140
|
-
|
141
|
-
next.await up.popup.close()
|
142
|
-
|
143
|
-
next =>
|
144
|
-
expect(up.popup.coveredUrl()).toBeMissing()
|
145
|
-
|
146
|
-
describe 'up.popup.close', ->
|
147
|
-
|
148
|
-
it 'should have tests'
|
149
|
-
|
150
|
-
describe 'up.popup.source', ->
|
151
|
-
|
152
|
-
it 'should have tests'
|
153
|
-
|
154
|
-
describe 'unobtrusive behavior', ->
|
155
|
-
|
156
|
-
describe 'a[up-popup]', ->
|
157
|
-
|
158
|
-
beforeEach ->
|
159
|
-
@stubAttach = =>
|
160
|
-
@$link = $fixture('a[href="/path"][up-popup=".target"]')
|
161
|
-
@attachSpy = up.popup.knife.mock('attachAsap').and.returnValue(Promise.resolve())
|
162
|
-
@defaultSpy = spyOn(up.link, 'allowDefault').and.callFake((event) -> event.preventDefault())
|
163
|
-
|
164
|
-
it 'opens the clicked link in a popup', asyncSpec (next) ->
|
165
|
-
@stubAttach()
|
166
|
-
Trigger.click(@$link)
|
167
|
-
next => expect(@attachSpy).toHaveBeenCalledWith(@$link[0], {})
|
168
|
-
|
169
|
-
# IE does not call JavaScript and always performs the default action on right clicks
|
170
|
-
unless AgentDetector.isIE() || AgentDetector.isEdge()
|
171
|
-
it 'does nothing if the right mouse button is used', asyncSpec (next) ->
|
172
|
-
@stubAttach()
|
173
|
-
Trigger.click(@$link, button: 2)
|
174
|
-
next => expect(@attachSpy).not.toHaveBeenCalled()
|
175
|
-
|
176
|
-
it 'does nothing if shift is pressed during the click', asyncSpec (next) ->
|
177
|
-
@stubAttach()
|
178
|
-
Trigger.click(@$link, shiftKey: true)
|
179
|
-
next => expect(@attachSpy).not.toHaveBeenCalled()
|
180
|
-
|
181
|
-
it 'does nothing if ctrl is pressed during the click', asyncSpec (next) ->
|
182
|
-
@stubAttach()
|
183
|
-
Trigger.click(@$link, ctrlKey: true)
|
184
|
-
next => expect(@attachSpy).not.toHaveBeenCalled()
|
185
|
-
|
186
|
-
it 'does nothing if meta is pressed during the click', asyncSpec (next) ->
|
187
|
-
@stubAttach()
|
188
|
-
Trigger.click(@$link, metaKey: true)
|
189
|
-
next => expect(@attachSpy).not.toHaveBeenCalled()
|
190
|
-
|
191
|
-
it 'closes an existing popup before opening the new popup', asyncSpec (next) ->
|
192
|
-
up.popup.config.openDuration = 0
|
193
|
-
up.popup.config.closeDuration = 0
|
194
|
-
|
195
|
-
$link1 = $fixture('a[href="/path1"][up-popup=".target"]')
|
196
|
-
$link2 = $fixture('a[href="/path2"][up-popup=".target"]')
|
197
|
-
|
198
|
-
events = []
|
199
|
-
u.each ['up:popup:open', 'up:popup:opened', 'up:popup:close', 'up:popup:closed'], (event) ->
|
200
|
-
up.on event, -> events.push(event)
|
201
|
-
|
202
|
-
Trigger.click($link1)
|
203
|
-
|
204
|
-
next =>
|
205
|
-
expect(events).toEqual ['up:popup:open']
|
206
|
-
@respondWith('<div class="target">text1</div>')
|
207
|
-
|
208
|
-
next =>
|
209
|
-
expect(events).toEqual ['up:popup:open', 'up:popup:opened']
|
210
|
-
Trigger.click($link2)
|
211
|
-
|
212
|
-
next =>
|
213
|
-
expect(events).toEqual ['up:popup:open', 'up:popup:opened', 'up:popup:close', 'up:popup:closed', 'up:popup:open']
|
214
|
-
@respondWith('<div class="target">text1</div>')
|
215
|
-
|
216
|
-
next =>
|
217
|
-
expect(events).toEqual ['up:popup:open', 'up:popup:opened', 'up:popup:close', 'up:popup:closed', 'up:popup:open', 'up:popup:opened']
|
218
|
-
|
219
|
-
|
220
|
-
describe 'with [up-instant] modifier', ->
|
221
|
-
|
222
|
-
beforeEach ->
|
223
|
-
@stubAttach()
|
224
|
-
@$link.attr('up-instant', '')
|
225
|
-
|
226
|
-
it 'opens the modal on mousedown (instead of on click)', asyncSpec (next) ->
|
227
|
-
Trigger.mousedown(@$link)
|
228
|
-
next => expect(@attachSpy.calls.mostRecent().args[0]).toEqual(@$link[0])
|
229
|
-
|
230
|
-
it 'does nothing on mouseup', asyncSpec (next) ->
|
231
|
-
Trigger.mouseup(@$link)
|
232
|
-
next => expect(@attachSpy).not.toHaveBeenCalled()
|
233
|
-
|
234
|
-
it 'does nothing on click', asyncSpec (next) ->
|
235
|
-
Trigger.click(@$link)
|
236
|
-
next => expect(@attachSpy).not.toHaveBeenCalled()
|
237
|
-
|
238
|
-
# IE does not call JavaScript and always performs the default action on right clicks
|
239
|
-
unless AgentDetector.isIE() || AgentDetector.isEdge()
|
240
|
-
it 'does nothing if the right mouse button is pressed down', asyncSpec (next) ->
|
241
|
-
Trigger.mousedown(@$link, button: 2)
|
242
|
-
next => expect(@attachSpy).not.toHaveBeenCalled()
|
243
|
-
|
244
|
-
it 'does nothing if shift is pressed during mousedown', asyncSpec (next) ->
|
245
|
-
Trigger.mousedown(@$link, shiftKey: true)
|
246
|
-
next => expect(@attachSpy).not.toHaveBeenCalled()
|
247
|
-
|
248
|
-
it 'does nothing if ctrl is pressed during mousedown', asyncSpec (next) ->
|
249
|
-
Trigger.mousedown(@$link, ctrlKey: true)
|
250
|
-
next => expect(@attachSpy).not.toHaveBeenCalled()
|
251
|
-
|
252
|
-
it 'does nothing if meta is pressed during mousedown', asyncSpec (next) ->
|
253
|
-
Trigger.mousedown(@$link, metaKey: true)
|
254
|
-
next => expect(@attachSpy).not.toHaveBeenCalled()
|
255
|
-
|
256
|
-
describe 'with [up-method] modifier', ->
|
257
|
-
|
258
|
-
it 'honours the given method', asyncSpec (next) ->
|
259
|
-
$link = $fixture('a[href="/path"][up-popup=".target"][up-method="post"]')
|
260
|
-
Trigger.click($link)
|
261
|
-
|
262
|
-
next =>
|
263
|
-
expect(@lastRequest().method).toEqual 'POST'
|
264
|
-
|
265
|
-
describe '[up-close]', ->
|
266
|
-
|
267
|
-
backgroundClicked = undefined
|
268
|
-
|
269
|
-
beforeEach ->
|
270
|
-
up.motion.config.enabled = false
|
271
|
-
backgroundClicked = jasmine.createSpy('background clicked')
|
272
|
-
up.on 'click', backgroundClicked
|
273
|
-
|
274
|
-
describe 'when clicked inside a popup', ->
|
275
|
-
|
276
|
-
it 'closes the open popup and halts the event chain', asyncSpec (next) ->
|
277
|
-
$opener = $fixture('a')
|
278
|
-
up.popup.attach($opener, html: '<div class="target">text</div>', target: '.target')
|
279
|
-
|
280
|
-
next =>
|
281
|
-
$popup = $fixture('.up-popup')
|
282
|
-
$closer = $popup.affix('a[up-close]') # link is within the popup
|
283
|
-
up.hello($closer)
|
284
|
-
Trigger.clickSequence($closer)
|
285
|
-
|
286
|
-
next =>
|
287
|
-
expect(up.popup.isOpen()).toBe(false)
|
288
|
-
expect(backgroundClicked).not.toHaveBeenCalled()
|
289
|
-
|
290
|
-
describe 'when clicked inside a popup when a modal is open', ->
|
291
|
-
|
292
|
-
it 'closes the popup, but not the modal', asyncSpec (next) ->
|
293
|
-
up.modal.extract '.modalee', '<div class="modalee"></div>'
|
294
|
-
|
295
|
-
next =>
|
296
|
-
$modalee = $('.up-modal .modalee')
|
297
|
-
$opener = $modalee.affix('a')
|
298
|
-
up.popup.attach($opener, html: '<div class="popupee">text</div>', target: '.popupee')
|
299
|
-
|
300
|
-
next =>
|
301
|
-
$popupee = $('.up-popup .popupee')
|
302
|
-
$closer = $popupee.affix('a[up-close]') # link is within the popup
|
303
|
-
up.hello($closer)
|
304
|
-
Trigger.clickSequence($closer)
|
305
|
-
|
306
|
-
next =>
|
307
|
-
expect(up.popup.isOpen()).toBe(false)
|
308
|
-
expect(up.modal.isOpen()).toBe(true)
|
309
|
-
expect(backgroundClicked).not.toHaveBeenCalled()
|
310
|
-
|
311
|
-
describe 'when no popup is open', ->
|
312
|
-
|
313
|
-
it 'does nothing and allows the event chain to continue', asyncSpec (next) ->
|
314
|
-
$link = $fixture('a[up-close]') # link is outside the popup
|
315
|
-
up.hello($link)
|
316
|
-
Trigger.clickSequence($link)
|
317
|
-
|
318
|
-
next =>
|
319
|
-
expect(up.popup.isOpen()).toBe(false)
|
320
|
-
expect(backgroundClicked).toHaveBeenCalled()
|
321
|
-
|
322
|
-
describe 'when replacing content', ->
|
323
|
-
|
324
|
-
beforeEach ->
|
325
|
-
up.motion.config.enabled = false
|
326
|
-
|
327
|
-
it 'prefers to replace a selector within the popup', asyncSpec (next) ->
|
328
|
-
$outside = $fixture('.foo').text('old outside')
|
329
|
-
$link = $fixture('.link')
|
330
|
-
up.popup.attach($link, target: '.foo', html: "<div class='foo'>old inside</div>")
|
331
|
-
|
332
|
-
next =>
|
333
|
-
up.extract('.foo', "<div class='foo'>new text</div>")
|
334
|
-
|
335
|
-
next =>
|
336
|
-
expect($outside).toBeAttached()
|
337
|
-
expect($outside).toHaveText('old outside')
|
338
|
-
expect($('.up-popup')).toHaveText('new text')
|
339
|
-
|
340
|
-
it 'auto-closes the popup when a replacement from inside the popup affects a selector behind the popup', asyncSpec (next) ->
|
341
|
-
$fixture('.outside').text('old outside')
|
342
|
-
$link = $fixture('.link')
|
343
|
-
up.popup.attach($link, target: '.inside', html: "<div class='inside'>old inside</div>")
|
344
|
-
|
345
|
-
next =>
|
346
|
-
up.extract('.outside', "<div class='outside'>new outside</div>", origin: $('.inside'))
|
347
|
-
|
348
|
-
next =>
|
349
|
-
expect($('.outside')).toHaveText('new outside')
|
350
|
-
expect($('.up-popup')).not.toBeAttached()
|
351
|
-
|
352
|
-
it 'does not restore the covered URL when auto-closing (since it would override the URL from the triggering update)', asyncSpec (next) ->
|
353
|
-
up.history.config.enabled = true
|
354
|
-
up.motion.config.enabled = true
|
355
|
-
up.popup.config.openDuration = 0
|
356
|
-
up.popup.config.closeDuration = 20
|
357
|
-
up.popup.config.history = true
|
358
|
-
|
359
|
-
$fixture('.outside').text('old outside')
|
360
|
-
$link = $fixture('.link')
|
361
|
-
up.popup.attach($link, url: '/path', target: '.inside')
|
362
|
-
|
363
|
-
next =>
|
364
|
-
@respondWith("<div class='inside'>old inside</div>") # Populate pop-up
|
365
|
-
|
366
|
-
next =>
|
367
|
-
up.extract('.outside', "<div class='outside'>new outside</div>",
|
368
|
-
origin: $('.inside'), history: '/new-location') # Provoke auto-close
|
369
|
-
|
370
|
-
next =>
|
371
|
-
expect(location.href).toMatchUrl '/new-location'
|
372
|
-
|
373
|
-
it 'does not auto-close the popup when a replacement from inside the popup affects a selector inside the popup', asyncSpec (next) ->
|
374
|
-
$fixture('.outside').text('old outside')
|
375
|
-
$link = $fixture('.link')
|
376
|
-
up.popup.attach($link, html: "<div class='inside'>old inside</div>", target: '.inside')
|
377
|
-
|
378
|
-
next =>
|
379
|
-
up.extract('.inside', "<div class='inside'>new inside</div>", origin: $('.inside'))
|
380
|
-
|
381
|
-
next =>
|
382
|
-
expect($('.inside')).toHaveText('new inside')
|
383
|
-
expect($('.up-popup')).toBeAttached()
|
384
|
-
|
385
|
-
it 'does not auto-close the popup when a replacement from outside the popup affects a selector outside the popup', asyncSpec (next) ->
|
386
|
-
$fixture('.outside').text('old outside')
|
387
|
-
$link = $fixture('.link')
|
388
|
-
up.popup.attach($link, target: '.inside', html: "<div class='inside'>old inside</div>")
|
389
|
-
|
390
|
-
next =>
|
391
|
-
up.extract('.outside', "<div class='outside'>new outside</div>", origin: $('.outside'))
|
392
|
-
|
393
|
-
next =>
|
394
|
-
expect($('.outside')).toHaveText('new outside')
|
395
|
-
expect($('.up-popup')).toBeAttached()
|
396
|
-
|
397
|
-
it 'does not auto-close the popup when a replacement from outside the popup affects a selector inside the popup', asyncSpec (next) ->
|
398
|
-
$fixture('.outside').text('old outside')
|
399
|
-
$link = $fixture('.link')
|
400
|
-
up.popup.attach($link, target: '.inside', html: "<div class='inside'>old inside</div>")
|
401
|
-
|
402
|
-
next =>
|
403
|
-
up.extract('.inside', "<div class='inside'>new inside</div>", origin: $('.outside'))
|
404
|
-
|
405
|
-
next =>
|
406
|
-
expect($('.inside')).toHaveText('new inside')
|
407
|
-
expect($('.up-popup')).toBeAttached()
|
408
|
-
|
409
|
-
describe 'when clicking on the body', ->
|
410
|
-
|
411
|
-
beforeEach ->
|
412
|
-
up.motion.config.enabled = false
|
413
|
-
|
414
|
-
it 'closes the popup', asyncSpec (next) ->
|
415
|
-
$fixture('.outside').text('old outside')
|
416
|
-
$link = $fixture('.link')
|
417
|
-
up.popup.attach($link, target: '.inside', html: "<div class='inside'>inside</div>")
|
418
|
-
|
419
|
-
next =>
|
420
|
-
expect(up.popup.isOpen()).toBe(true)
|
421
|
-
Trigger.clickSequence($('body'))
|
422
|
-
|
423
|
-
next =>
|
424
|
-
expect(up.popup.isOpen()).toBe(false)
|
425
|
-
|
426
|
-
it 'closes the popup when a an [up-instant] link removes its parent (and thus a click event never bubbles up to the document)', asyncSpec (next) ->
|
427
|
-
$parent = $fixture('.parent')
|
428
|
-
$parentReplacingLink = $parent.affix('a[href="/foo"][up-target=".parent"][up-instant]')
|
429
|
-
$popupOpener = $fixture('.link')
|
430
|
-
up.popup.attach($popupOpener, target: '.inside', html: "<div class='inside'>inside</div>")
|
431
|
-
|
432
|
-
next =>
|
433
|
-
expect(up.popup.isOpen()).toBe(true)
|
434
|
-
Trigger.clickSequence($parentReplacingLink)
|
435
|
-
|
436
|
-
next =>
|
437
|
-
expect(up.popup.isOpen()).toBe(false)
|
438
|
-
|
439
|
-
it 'closes the popup when the user clicks on an [up-target] link outside the popup', asyncSpec (next) ->
|
440
|
-
$target = $fixture('.target')
|
441
|
-
$outsideLink = $fixture('a[href="/foo"][up-target=".target"]')
|
442
|
-
$popupOpener = $fixture('.link')
|
443
|
-
up.popup.attach($popupOpener, target: '.inside', html: "<div class='inside'>inside</div>")
|
444
|
-
|
445
|
-
next =>
|
446
|
-
expect(up.popup.isOpen()).toBe(true)
|
447
|
-
Trigger.clickSequence($outsideLink)
|
448
|
-
|
449
|
-
next =>
|
450
|
-
expect(up.popup.isOpen()).toBe(false)
|
451
|
-
|
452
|
-
it 'closes the popup when the user clicks on an [up-instant] link outside the popup', asyncSpec (next) ->
|
453
|
-
$target = $fixture('.target')
|
454
|
-
$outsideLink = $fixture('a[href="/foo"][up-target=".target"][up-instant]')
|
455
|
-
$popupOpener = $fixture('.link')
|
456
|
-
up.popup.attach($popupOpener, target: '.inside', html: "<div class='inside'>inside</div>")
|
457
|
-
|
458
|
-
next =>
|
459
|
-
expect(up.popup.isOpen()).toBe(true)
|
460
|
-
Trigger.clickSequence($outsideLink)
|
461
|
-
|
462
|
-
next =>
|
463
|
-
expect(up.popup.isOpen()).toBe(false)
|
464
|
-
|
465
|
-
it 'does not close the popup if #preventDefault() is called on up:popup:close event', asyncSpec (next) ->
|
466
|
-
$fixture('.outside').text('old outside')
|
467
|
-
$link = $fixture('.link')
|
468
|
-
up.popup.attach($link, target: '.inside', html: "<div class='inside'>inside</div>")
|
469
|
-
|
470
|
-
up.on 'up:popup:close', (e) -> e.preventDefault()
|
471
|
-
|
472
|
-
next =>
|
473
|
-
expect(up.popup.isOpen()).toBe(true)
|
474
|
-
Trigger.clickSequence($('body'))
|
475
|
-
|
476
|
-
next =>
|
477
|
-
expect(up.popup.isOpen()).toBe(true)
|
478
|
-
|
479
|
-
# Since there isn't anyone who could handle the rejection inside
|
480
|
-
# the event handler, our handler mutes the rejection.
|
481
|
-
expect(window).not.toHaveUnhandledRejections()
|
482
|
-
|
483
|
-
it 'does not close the popup if a link outside the popup is followed with the up.follow function (bugfix)', asyncSpec (next) ->
|
484
|
-
$target = $fixture('.target')
|
485
|
-
$outsideLink = $fixture('a[href="/foo"][up-target=".target"]')
|
486
|
-
$popupOpener = $fixture('.link')
|
487
|
-
up.popup.attach($popupOpener, target: '.inside', html: "<div class='inside'>inside</div>")
|
488
|
-
|
489
|
-
next =>
|
490
|
-
expect(up.popup.isOpen()).toBe(true)
|
491
|
-
up.follow($outsideLink)
|
492
|
-
|
493
|
-
next =>
|
494
|
-
expect(up.popup.isOpen()).toBe(true)
|
495
|
-
|
496
|
-
it 'does not close the popup if a form outside the popup is followed with the up.submit function (bugfix)', asyncSpec (next) ->
|
497
|
-
$target = $fixture('.target')
|
498
|
-
$outsideForm = $fixture('form[action="/foo"][up-target=".target"]')
|
499
|
-
$popupOpener = $fixture('.link')
|
500
|
-
up.popup.attach($popupOpener, target: '.inside', html: "<div class='inside'>inside</div>")
|
501
|
-
|
502
|
-
next =>
|
503
|
-
expect(up.popup.isOpen()).toBe(true)
|
504
|
-
up.submit($outsideForm)
|
505
|
-
|
506
|
-
next =>
|
507
|
-
expect(up.popup.isOpen()).toBe(true)
|