diff options
author | Johann-S <johann.servoire@gmail.com> | 2017-10-10 14:19:39 +0300 |
---|---|---|
committer | Johann-S <johann.servoire@gmail.com> | 2017-10-10 15:19:22 +0300 |
commit | 8e7ba02c5cf56bdc5b4c0fff71edec19ade1e3e9 (patch) | |
tree | bbbf3c650d76e57c38fb51568d40506fdc52b6a5 /js/tests/visual/modal.html | |
parent | da22bce2f073d95689a474b294cd16db9ed41862 (diff) |
Modal plugin set _isTransitioning after the trigger of hide event
Diffstat (limited to 'js/tests/visual/modal.html')
-rw-r--r-- | js/tests/visual/modal.html | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/js/tests/visual/modal.html b/js/tests/visual/modal.html index 6e9f0f7107..fcc96035bd 100644 --- a/js/tests/visual/modal.html +++ b/js/tests/visual/modal.html @@ -171,6 +171,12 @@ <button type="button" class="btn btn-secondary btn-lg" data-toggle="modal" data-target="<div class="modal fade the-bad" tabindex="-1" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button><h4 class="modal-title">The Bad Modal</h4></div><div class="modal-body">This modal's HTTML source code is declared inline, inside the data-target attribute of it's show-button</div></div></div></div>"> Modal with an XSS inside the data-target </button> + + <br><br> + + <button type="button" class="btn btn-secondary btn-lg" id="btnPreventModal"> + Launch prevented modal on hide (to see the result open your console) + </button> </div> <script src="../../../assets/js/vendor/jquery-slim.min.js"></script> @@ -203,6 +209,22 @@ $('#firefoxModal').on('focus', reportFirefoxTestResult.bind(false)) $('#ff-bug-input').on('focus', reportFirefoxTestResult.bind(true)) }) + + $('#btnPreventModal').on('click', function () { + $('#firefoxModal').one('shown.bs.modal', function () { + $(this).modal('hide') + }) + .one('hide.bs.modal', function (event) { + event.preventDefault() + if ($(this).data('bs.modal')._isTransitioning) { + console.error('Modal plugin should not set _isTransitioning when hide event is prevented') + } else { + console.log('Test passed') + $(this).modal('hide') // work as expected + } + }) + .modal('show') + }) }) </script> </body> |