Я пишу тест для некоторых функций, которые включают в себя щелчок пользователя по флажку. Я использую $('input').trigger($.Event('click', { shiftKey: true }));
для имитации этого.
Но когда вызывается прослушиватель событий, свойство event.shiftKey
всегда сообщается как false
при возникновении из моих синтетических событий, в то время как реальные клики производят желаемый эффект. Что еще более сбивает с толку, запуск того же события для элемента, отличного от input
, кажется, работает просто отлично. Например, см. http://jsfiddle.net/huskssk1/.
Я наблюдаю такое поведение как в своем браузере (Chrome 39, OS X), так и в тестовом стеке (Poltergeist 1.5.1 + PhantomJS 1.9.8).
Что вызывает это? Есть ли способ обойти это?
PS Мой полный тестовый стек — это Ruby on Rails + RSpec + Capybara + Poltergeist + PhantomJS. Если вы знаете лучший способ вызвать Shift-щелчок, дайте мне знать!