FLUID-832: Inline Edit tests fail on Safari

Metadata

Source
FLUID-832
Type
Sub-task
Priority
Major
Status
Closed
Resolution
Fixed
Assignee
Anastasia Cheetham
Reporter
Michelle D'Souza
Created
2008-06-26T18:47:05.000-0400
Updated
2011-02-22T16:27:56.309-0500
Versions
  1. 0.1
  2. 0.3
  3. 0.4beta1
  4. 0.4
Fixed Versions
  1. 0.5beta1
Component
  1. Inline Edit

Description

Environments

Safari 3.1.1

Comments

  • Eli Cochran commented 2008-07-28T12:36:03.000-0400

    Tests marked with asterisks fail in Safari:

    7. InlineEdit Tests module: Keyboard Navigation Edit (3, 8, 11)
    1. Display is tabbable
    2. Initially display field is not focussed
    3. After focus, display is focussed

        • 4. After enter pressed, display field is hidden ***
        • 5. After enter pressed, edit field is visible ***
        • 6. After enter pressed, edit field contains same text as display field expected: Click me to edit... actual: this is the hidden text for the first editor ***
          7. After changing text and pressing enter, display field is visible
          8. After changing text and pressing enter, display has focus style
          9. After changing text and pressing enter, edit field is hidden
          10. After changing text and pressing enter, display field contains new text: This is new text.

    10. InlineEdit Tests module: Arrow Keys while Editing (5, 0, 5)

        • 1. After enter pressed, display field is hidden ***
        • 2. After enter pressed, edit field is visible ***
        • 3. After enter pressed, edit field contains same text as display field expected: Click me to edit... actual: this is the hidden text for the first editor ***
        • 4. After left-arrow pressed, display field is still hidden ***
        • 5. After left-arrow pressed, edit field is still visible ***
  • Anastasia Cheetham commented 2008-08-12T13:07:15.000-0400

    The tests that fail are the ones that use jqUnit's jquery.simulate() function.

  • Anastasia Cheetham commented 2008-08-12T15:15:47.000-0400

    In Safari, simulate()'s call to document.createEvent("KeyEvents") (jquery.simulate.js line 81) causes a "NOT_SUPPORTED_ERR: DOM Exception 9" exception. It falls through to the catch clause, which tries document.createEvent("Events") (line 86).

    The result of this is that the which field of the resulting event is not set in Safari.

    The keyboard a11y plugin looks at the which field to decide whether or not to fire the activation handler (jquery.keyboard-a11y.js line 175), and since it's not set, it doesn't fire it. This is why the event simulation is not working properly.

    One possible solution might be to modify the keyboard-a11y plugin to double-check the which field, and if it's not there, fall back to the keyCode or charCode.

  • Anastasia Cheetham commented 2008-08-12T16:03:19.000-0400

    I'm attaching a patch file (FLUID-832.patch.txt) that does the previously-described double-check of evt.which

    I'm not sure about the appropriateness of this approach, so I'm going to request a review before proceeding.

  • Anastasia Cheetham commented 2008-08-18T11:38:53.000-0400

    I've filed this issue with jQuery UI: http://ui.jquery.com/bugs/ticket/3229

  • Anastasia Cheetham commented 2008-08-18T11:44:52.000-0400

    Fixed. The code has a reference to the jQuery ticket, so that when it is resolved, we can revert back.

  • Michelle D'Souza commented 2011-02-22T16:27:56.308-0500

    Closing issues that were resolved for 1.0 and earlier releases.