[orca] New tests



commit a95cb80a87e22133862c0fc8f3ab9df5f58f9dca
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Sat Sep 13 22:28:23 2014 -0400

    New tests

 .../firefox/object_nav_links_in_text.params        |    1 +
 .../keystrokes/firefox/object_nav_links_in_text.py |  235 +++++++++++++++++
 .../firefox/object_nav_links_in_text.settings      |  122 +++++++++
 .../firefox/object_nav_links_on_line.params        |    1 +
 .../keystrokes/firefox/object_nav_links_on_line.py |  251 +++++++++++++++++++
 .../firefox/object_nav_links_on_line.settings      |  122 +++++++++
 .../firefox/object_nav_simple_form_down.params     |    1 +
 .../firefox/object_nav_simple_form_down.py         |  246 ++++++++++++++++++
 .../firefox/object_nav_simple_form_down.settings   |  122 +++++++++
 .../firefox/object_nav_simple_form_up.params       |    1 +
 .../firefox/object_nav_simple_form_up.py           |  264 ++++++++++++++++++++
 .../firefox/object_nav_simple_form_up.settings     |  122 +++++++++
 12 files changed, 1488 insertions(+), 0 deletions(-)
---
diff --git a/test/keystrokes/firefox/object_nav_links_in_text.params 
b/test/keystrokes/firefox/object_nav_links_in_text.params
new file mode 100644
index 0000000..95128f2
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_links_in_text.params
@@ -0,0 +1 @@
+PARAMS=$TEST_DIR/../../html/enter-bug-form.html
diff --git a/test/keystrokes/firefox/object_nav_links_in_text.py 
b/test/keystrokes/firefox/object_nav_links_in_text.py
new file mode 100644
index 0000000..e07f042
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_links_in_text.py
@@ -0,0 +1,235 @@
+#!/usr/bin/python
+
+"""Test of object navigation."""
+
+from macaroon.playback import *
+import utils
+
+sequence = MacroSequence()
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("<Control>Home"))
+sequence.append(utils.AssertPresentationAction(
+    "1. Top of file",
+    ["BRAILLE LINE:  'Home'",
+     "     VISIBLE:  'Home', cursor=1",
+     "SPEECH OUTPUT: 'Home link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("H"))
+sequence.append(utils.AssertPresentationAction(
+    "2. H for heading",
+    ["BRAILLE LINE:  'Enter Bug: orca \u2013 This page lets you enter a new bug  h1'",
+     "     VISIBLE:  'Enter Bug: orca \u2013 This page lets', cursor=1",
+     "SPEECH OUTPUT: 'Enter Bug: orca \u2013 This page lets you enter a new bug into Bugzilla. heading level 
1'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "3. line Down",
+    ["BRAILLE LINE:  'into Bugzilla. h1'",
+     "     VISIBLE:  'into Bugzilla. h1', cursor=1",
+     "SPEECH OUTPUT: 'into Bugzilla. heading level 1'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "4. line Down",
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=0",
+     "SPEECH OUTPUT: 'blank'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "5. line Down",
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=0",
+     "SPEECH OUTPUT: 'blank'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "6. line Down",
+    ["BRAILLE LINE:  'Before reporting a bug, please read the'",
+     "     VISIBLE:  'Before reporting a bug, please r', cursor=1",
+     "SPEECH OUTPUT: 'Before reporting a bug, please read the'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "7. line Down",
+    ["BRAILLE LINE:  'bug writing guidelines'",
+     "     VISIBLE:  'bug writing guidelines', cursor=1",
+     "SPEECH OUTPUT: 'bug writing guidelines link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "8. line Down",
+    ["BRAILLE LINE:  ','",
+     "     VISIBLE:  ',', cursor=1",
+     "SPEECH OUTPUT: ','"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "9. line Down",
+    ["BRAILLE LINE:  'please look at the list of'",
+     "     VISIBLE:  'please look at the list of', cursor=1",
+     "SPEECH OUTPUT: 'please look at the list of'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "10. line Down",
+    ["BRAILLE LINE:  'most frequently reported bugs'",
+     "     VISIBLE:  'most frequently reported bugs', cursor=1",
+     "SPEECH OUTPUT: 'most frequently reported bugs link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "11. line Down",
+    ["BRAILLE LINE:  ', and please'",
+     "     VISIBLE:  ', and please', cursor=1",
+     "SPEECH OUTPUT: ', and please'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "12. line Down",
+    ["BRAILLE LINE:  'search'",
+     "     VISIBLE:  'search', cursor=1",
+     "SPEECH OUTPUT: 'search link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "13. line Down",
+    ["BRAILLE LINE:  ' or'",
+     "     VISIBLE:  ' or', cursor=1",
+     "SPEECH OUTPUT: 'or'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "14. line Down",
+    ["BRAILLE LINE:  'browse'",
+     "     VISIBLE:  'browse', cursor=1",
+     "SPEECH OUTPUT: 'browse link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "15. line Down",
+    ["BRAILLE LINE:  ' for the bug.'",
+     "     VISIBLE:  ' for the bug.', cursor=1",
+     "SPEECH OUTPUT: 'for the bug.'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "16. line Up",
+    ["BRAILLE LINE:  'browse'",
+     "     VISIBLE:  'browse', cursor=1",
+     "SPEECH OUTPUT: 'browse link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "17. line Up",
+    ["BRAILLE LINE:  ' or'",
+     "     VISIBLE:  ' or', cursor=1",
+     "SPEECH OUTPUT: 'or'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "18. line Up",
+    ["BRAILLE LINE:  'search'",
+     "     VISIBLE:  'search', cursor=1",
+     "SPEECH OUTPUT: 'search link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "19. line Up",
+    ["BRAILLE LINE:  ', and please'",
+     "     VISIBLE:  ', and please', cursor=1",
+     "SPEECH OUTPUT: ', and please'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "20. line Up",
+    ["BRAILLE LINE:  'most frequently reported bugs'",
+     "     VISIBLE:  'most frequently reported bugs', cursor=1",
+     "SPEECH OUTPUT: 'most frequently reported bugs link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "21. line Up",
+    ["BRAILLE LINE:  'please look at the list of'",
+     "     VISIBLE:  'please look at the list of', cursor=1",
+     "SPEECH OUTPUT: 'please look at the list of'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "22. line Up",
+    ["BRAILLE LINE:  ','",
+     "     VISIBLE:  ',', cursor=1",
+     "SPEECH OUTPUT: ','"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "23. line Up",
+    ["BRAILLE LINE:  'bug writing guidelines'",
+     "     VISIBLE:  'bug writing guidelines', cursor=1",
+     "SPEECH OUTPUT: 'bug writing guidelines link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "24. line Up",
+    ["BRAILLE LINE:  'Before reporting a bug, please read the'",
+     "     VISIBLE:  'Before reporting a bug, please r', cursor=1",
+     "SPEECH OUTPUT: 'Before reporting a bug, please read the'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "25. line Up",
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=0",
+     "SPEECH OUTPUT: 'blank'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "26. line Up",
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=0",
+     "SPEECH OUTPUT: 'blank'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "27. line Up",
+    ["BRAILLE LINE:  'into Bugzilla. h1'",
+     "     VISIBLE:  'into Bugzilla. h1', cursor=1",
+     "SPEECH OUTPUT: 'into Bugzilla. heading level 1'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "28. line Up",
+    ["BRAILLE LINE:  'Enter Bug: orca \u2013 This page lets you enter a new bug  h1'",
+     "     VISIBLE:  'Enter Bug: orca \u2013 This page lets', cursor=1",
+     "SPEECH OUTPUT: 'Enter Bug: orca \u2013 This page lets you enter a new bug heading level 1'"]))
+
+sequence.append(utils.AssertionSummaryAction())
+sequence.start()
diff --git a/test/keystrokes/firefox/object_nav_links_in_text.settings 
b/test/keystrokes/firefox/object_nav_links_in_text.settings
new file mode 100644
index 0000000..d66b1e4
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_links_in_text.settings
@@ -0,0 +1,122 @@
+{
+    "profiles": {
+        "default": {
+            "keybindings": {}, 
+            "pronunciations": {}, 
+            "profile": [
+                "Default", 
+                "default"
+            ]
+        }
+    }, 
+    "general": {
+        "speakSpreadsheetCoordinates": true, 
+        "disableBrailleEOL": false, 
+        "profile": [
+            "Default", 
+            "default"
+        ], 
+        "enableContractedBraille": false, 
+        "findResultsMinimumLength": 4, 
+        "readTableCellRow": true, 
+        "brailleAlignmentStyle": 0, 
+        "presentDateFormat": "%x", 
+        "flashIsPersistent": false, 
+        "brailleRequiredStateString": null, 
+        "voices": {
+            "hyperlink": {
+                "established": false
+            }, 
+            "system": {
+                "established": false
+            }, 
+            "default": {
+                "established": false
+            }, 
+            "uppercase": {
+                "average-pitch": 7.0
+            }
+        }, 
+        "enableSpeechIndentation": false, 
+        "chatSpeakRoomName": false, 
+        "flashVerbosityLevel": 1, 
+        "enableBraille": true, 
+        "speakCellHeaders": true, 
+        "layoutMode": false, 
+        "enableBrailleMonitor": true, 
+        "progressBarUpdateInterval": 10, 
+        "enableProgressBarUpdates": true, 
+        "chatRoomHistories": false, 
+        "enableTutorialMessages": false, 
+        "enableFunctionKeys": true, 
+        "brailleContractionTable": "", 
+        "speechRequiredStateString": null, 
+        "messageVerbosityLevel": 1, 
+        "verbalizePunctuationStyle": 1, 
+        "enableBrailleContext": true, 
+        "enableDiacriticalKeys": false, 
+        "brailleRolenameStyle": 1, 
+        "mouseDwellDelay": 0, 
+        "wrappedStructuralNavigation": true, 
+        "enableKeyEcho": false, 
+        "enableEchoByWord": false, 
+        "presentToolTips": false, 
+        "enableNavigationKeys": false, 
+        "startingProfile": [
+            "Default", 
+            "default"
+        ], 
+        "enabledBrailledTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; text-spelling:none;", 
+        "sayAllStyle": 1, 
+        "keyboardLayout": 1, 
+        "structNavTriggersFocusMode": false, 
+        "textAttributesBrailleIndicator": 0, 
+        "enableSpeech": true, 
+        "speechVerbosityLevel": 1, 
+        "onlySpeakDisplayedText": false, 
+        "speechServerFactory": "speechdispatcherfactory", 
+        "skipBlankCells": false, 
+        "enableActionKeys": true, 
+        "enableModifierKeys": true, 
+        "brailleLinkIndicator": 192, 
+        "orcaModifierKeys": [
+            "Insert", 
+            "KP_Insert"
+        ], 
+        "enablePauseBreaks": true, 
+        "enablePrintableKeys": true, 
+        "speakMultiCaseStringsAsWords": false, 
+        "spellcheckSpellError": true, 
+        "spellcheckPresentContext": true, 
+        "caretNavTriggersFocusMode": false, 
+        "findResultsVerbosity": 2, 
+        "largeObjectTextLength": 75, 
+        "enableMnemonicSpeaking": false, 
+        "enableMouseReview": false, 
+        "speakBlankLines": true, 
+        "speechServerInfo": null, 
+        "speakCellSpan": true, 
+        "enableFlashMessages": true, 
+        "brailleSelectorIndicator": 192, 
+        "spellcheckSpellSuggestion": true, 
+        "chatMessageVerbosity": 0, 
+        "progressBarVerbosity": 1, 
+        "brailleFlashTime": 5000, 
+        "enableEchoBySentence": false, 
+        "structuralNavigationEnabled": true, 
+        "useColorNames": true, 
+        "enabledSpokenTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; paragraph-style:; text-spelling:none;", 
+        "speakCellCoordinates": true, 
+        "enableEchoByCharacter": false, 
+        "enablePositionSpeaking": false, 
+        "brailleVerbosityLevel": 1, 
+        "presentTimeFormat": "%X", 
+        "chatAnnounceBuddyTyping": false, 
+        "activeProfile": [
+            "Default", 
+            "default"
+        ]
+    }, 
+    "keybindings": {}, 
+    "pronunciations": {}
+}
diff --git a/test/keystrokes/firefox/object_nav_links_on_line.params 
b/test/keystrokes/firefox/object_nav_links_on_line.params
new file mode 100644
index 0000000..95128f2
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_links_on_line.params
@@ -0,0 +1 @@
+PARAMS=$TEST_DIR/../../html/enter-bug-form.html
diff --git a/test/keystrokes/firefox/object_nav_links_on_line.py 
b/test/keystrokes/firefox/object_nav_links_on_line.py
new file mode 100644
index 0000000..da8774d
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_links_on_line.py
@@ -0,0 +1,251 @@
+#!/usr/bin/python
+
+"""Test of object navigation."""
+
+from macaroon.playback import *
+import utils
+
+sequence = MacroSequence()
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("<Control>Home"))
+sequence.append(utils.AssertPresentationAction(
+    "1. Top of file",
+    ["BRAILLE LINE:  'Home'",
+     "     VISIBLE:  'Home', cursor=1",
+     "SPEECH OUTPUT: 'Home link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "2. line Down",
+    ["BRAILLE LINE:  'Bugzilla'",
+     "     VISIBLE:  'Bugzilla', cursor=1",
+     "SPEECH OUTPUT: 'Bugzilla'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "3. line Down",
+    ["BRAILLE LINE:  'New bug'",
+     "     VISIBLE:  'New bug', cursor=1",
+     "SPEECH OUTPUT: 'New bug link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "4. line Down",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "5. line Down",
+    ["BRAILLE LINE:  'Browse'",
+     "     VISIBLE:  'Browse', cursor=1",
+     "SPEECH OUTPUT: 'Browse link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "6. line Down",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "7. line Down",
+    ["BRAILLE LINE:  'Search'",
+     "     VISIBLE:  'Search', cursor=1",
+     "SPEECH OUTPUT: 'Search link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "8. line Down",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "9. line Down",
+    ["BRAILLE LINE:  'Reports'",
+     "     VISIBLE:  'Reports', cursor=1",
+     "SPEECH OUTPUT: 'Reports link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "10. line Down",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "11. line Down",
+    ["BRAILLE LINE:  'Account'",
+     "     VISIBLE:  'Account', cursor=1",
+     "SPEECH OUTPUT: 'Account link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "12. line Down",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "13. line Down",
+    ["BRAILLE LINE:  'Admin'",
+     "     VISIBLE:  'Admin', cursor=1",
+     "SPEECH OUTPUT: 'Admin link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "14. line Down",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "15. line Down",
+    ["BRAILLE LINE:  'Help'",
+     "     VISIBLE:  'Help', cursor=1",
+     "SPEECH OUTPUT: 'Help link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "16. line Up",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "17. line Up",
+    ["BRAILLE LINE:  'Admin'",
+     "     VISIBLE:  'Admin', cursor=1",
+     "SPEECH OUTPUT: 'Admin link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "18. line Up",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "19. line Up",
+    ["BRAILLE LINE:  'Account'",
+     "     VISIBLE:  'Account', cursor=1",
+     "SPEECH OUTPUT: 'Account link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "20. line Up",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "21. line Up",
+    ["BRAILLE LINE:  'Reports'",
+     "     VISIBLE:  'Reports', cursor=1",
+     "SPEECH OUTPUT: 'Reports link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "22. line Up",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "23. line Up",
+    ["BRAILLE LINE:  'Search'",
+     "     VISIBLE:  'Search', cursor=1",
+     "SPEECH OUTPUT: 'Search link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "24. line Up",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "25. line Up",
+    ["BRAILLE LINE:  'Browse'",
+     "     VISIBLE:  'Browse', cursor=1",
+     "SPEECH OUTPUT: 'Browse link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "26. line Up",
+    ["BRAILLE LINE:  ' ·'",
+     "     VISIBLE:  ' ·', cursor=1",
+     "SPEECH OUTPUT: '·'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "27. line Up",
+    ["BRAILLE LINE:  'New bug'",
+     "     VISIBLE:  'New bug', cursor=1",
+     "SPEECH OUTPUT: 'New bug link'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "28. line Up",
+    ["BRAILLE LINE:  'Bugzilla'",
+     "     VISIBLE:  'Bugzilla', cursor=1",
+     "SPEECH OUTPUT: 'Bugzilla'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "29. line Up",
+    ["BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=0",
+     "SPEECH OUTPUT: 'blank'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "30. line Up",
+    ["BRAILLE LINE:  'Home'",
+     "     VISIBLE:  'Home', cursor=1",
+     "SPEECH OUTPUT: 'Home link'"]))
+
+sequence.append(utils.AssertionSummaryAction())
+sequence.start()
diff --git a/test/keystrokes/firefox/object_nav_links_on_line.settings 
b/test/keystrokes/firefox/object_nav_links_on_line.settings
new file mode 100644
index 0000000..d66b1e4
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_links_on_line.settings
@@ -0,0 +1,122 @@
+{
+    "profiles": {
+        "default": {
+            "keybindings": {}, 
+            "pronunciations": {}, 
+            "profile": [
+                "Default", 
+                "default"
+            ]
+        }
+    }, 
+    "general": {
+        "speakSpreadsheetCoordinates": true, 
+        "disableBrailleEOL": false, 
+        "profile": [
+            "Default", 
+            "default"
+        ], 
+        "enableContractedBraille": false, 
+        "findResultsMinimumLength": 4, 
+        "readTableCellRow": true, 
+        "brailleAlignmentStyle": 0, 
+        "presentDateFormat": "%x", 
+        "flashIsPersistent": false, 
+        "brailleRequiredStateString": null, 
+        "voices": {
+            "hyperlink": {
+                "established": false
+            }, 
+            "system": {
+                "established": false
+            }, 
+            "default": {
+                "established": false
+            }, 
+            "uppercase": {
+                "average-pitch": 7.0
+            }
+        }, 
+        "enableSpeechIndentation": false, 
+        "chatSpeakRoomName": false, 
+        "flashVerbosityLevel": 1, 
+        "enableBraille": true, 
+        "speakCellHeaders": true, 
+        "layoutMode": false, 
+        "enableBrailleMonitor": true, 
+        "progressBarUpdateInterval": 10, 
+        "enableProgressBarUpdates": true, 
+        "chatRoomHistories": false, 
+        "enableTutorialMessages": false, 
+        "enableFunctionKeys": true, 
+        "brailleContractionTable": "", 
+        "speechRequiredStateString": null, 
+        "messageVerbosityLevel": 1, 
+        "verbalizePunctuationStyle": 1, 
+        "enableBrailleContext": true, 
+        "enableDiacriticalKeys": false, 
+        "brailleRolenameStyle": 1, 
+        "mouseDwellDelay": 0, 
+        "wrappedStructuralNavigation": true, 
+        "enableKeyEcho": false, 
+        "enableEchoByWord": false, 
+        "presentToolTips": false, 
+        "enableNavigationKeys": false, 
+        "startingProfile": [
+            "Default", 
+            "default"
+        ], 
+        "enabledBrailledTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; text-spelling:none;", 
+        "sayAllStyle": 1, 
+        "keyboardLayout": 1, 
+        "structNavTriggersFocusMode": false, 
+        "textAttributesBrailleIndicator": 0, 
+        "enableSpeech": true, 
+        "speechVerbosityLevel": 1, 
+        "onlySpeakDisplayedText": false, 
+        "speechServerFactory": "speechdispatcherfactory", 
+        "skipBlankCells": false, 
+        "enableActionKeys": true, 
+        "enableModifierKeys": true, 
+        "brailleLinkIndicator": 192, 
+        "orcaModifierKeys": [
+            "Insert", 
+            "KP_Insert"
+        ], 
+        "enablePauseBreaks": true, 
+        "enablePrintableKeys": true, 
+        "speakMultiCaseStringsAsWords": false, 
+        "spellcheckSpellError": true, 
+        "spellcheckPresentContext": true, 
+        "caretNavTriggersFocusMode": false, 
+        "findResultsVerbosity": 2, 
+        "largeObjectTextLength": 75, 
+        "enableMnemonicSpeaking": false, 
+        "enableMouseReview": false, 
+        "speakBlankLines": true, 
+        "speechServerInfo": null, 
+        "speakCellSpan": true, 
+        "enableFlashMessages": true, 
+        "brailleSelectorIndicator": 192, 
+        "spellcheckSpellSuggestion": true, 
+        "chatMessageVerbosity": 0, 
+        "progressBarVerbosity": 1, 
+        "brailleFlashTime": 5000, 
+        "enableEchoBySentence": false, 
+        "structuralNavigationEnabled": true, 
+        "useColorNames": true, 
+        "enabledSpokenTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; paragraph-style:; text-spelling:none;", 
+        "speakCellCoordinates": true, 
+        "enableEchoByCharacter": false, 
+        "enablePositionSpeaking": false, 
+        "brailleVerbosityLevel": 1, 
+        "presentTimeFormat": "%X", 
+        "chatAnnounceBuddyTyping": false, 
+        "activeProfile": [
+            "Default", 
+            "default"
+        ]
+    }, 
+    "keybindings": {}, 
+    "pronunciations": {}
+}
diff --git a/test/keystrokes/firefox/object_nav_simple_form_down.params 
b/test/keystrokes/firefox/object_nav_simple_form_down.params
new file mode 100644
index 0000000..c5f2f6b
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_simple_form_down.params
@@ -0,0 +1 @@
+PARAMS=$TEST_DIR/../../html/simpleform.html
diff --git a/test/keystrokes/firefox/object_nav_simple_form_down.py 
b/test/keystrokes/firefox/object_nav_simple_form_down.py
new file mode 100644
index 0000000..ec89029
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_simple_form_down.py
@@ -0,0 +1,246 @@
+#!/usr/bin/python
+
+"""Test of object navigation."""
+
+from macaroon.playback import *
+import utils
+
+sequence = MacroSequence()
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("<Control>Home"))
+sequence.append(utils.AssertPresentationAction(
+    "1. Top of file",
+    ["BRAILLE LINE:  'Type something here:'",
+     "     VISIBLE:  'Type something here:', cursor=1",
+     "SPEECH OUTPUT: 'Type something here:'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "2. line Down",
+    ["BRAILLE LINE:  ' $l'",
+     "     VISIBLE:  ' $l', cursor=0",
+     "SPEECH OUTPUT: 'entry"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "3. line Down",
+    ["BRAILLE LINE:  'Magic disappearing text trick:'",
+     "     VISIBLE:  'Magic disappearing text trick:', cursor=1",
+     "SPEECH OUTPUT: 'Magic disappearing text trick:"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "4. line Down",
+    ["BRAILLE LINE:  ' $l'",
+     "     VISIBLE:  ' $l', cursor=1",
+     "BRAILLE LINE:  ' $l'",
+     "     VISIBLE:  ' $l', cursor=1",
+     "SPEECH OUTPUT: 'entry"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "5. line Down",
+    ["BRAILLE LINE:  'Tell me a secret:'",
+     "     VISIBLE:  'Tell me a secret:', cursor=1",
+     "SPEECH OUTPUT: 'Tell me a secret:"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "6. line Down",
+    ["BRAILLE LINE:  ' $l'",
+     "     VISIBLE:  ' $l', cursor=0",
+     "SPEECH OUTPUT: 'password text"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "7. line Down",
+    ["BRAILLE LINE:  'Tell me a little more about yourself:'",
+     "     VISIBLE:  'Tell me a little more about your', cursor=1",
+     "SPEECH OUTPUT: 'Tell me a little more about yourself:"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "8. line Down",
+    ["BRAILLE LINE:  'I am a monkey with a long tail.  I like  $l'",
+     "     VISIBLE:  'I am a monkey with a long tail. ', cursor=1",
+     "SPEECH OUTPUT: 'entry I am a monkey with a long tail.  I like "]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "9. line Down",
+    ["BRAILLE LINE:  'to swing from trees and eat bananas.   $l'",
+     "     VISIBLE:  'to swing from trees and eat bana', cursor=1",
+     "SPEECH OUTPUT: 'entry to swing from trees and eat bananas.  "]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "10. line Down",
+    ["BRAILLE LINE:  'I've recently taken up typing and plan  $l'",
+     "     VISIBLE:  'I've recently taken up typing an', cursor=1",
+     "SPEECH OUTPUT: 'entry I've recently taken up typing and plan "]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "11. line Down",
+    ["BRAILLE LINE:  'to write my memoirs. $l'",
+     "     VISIBLE:  'to write my memoirs. $l', cursor=1",
+     "SPEECH OUTPUT: 'entry to write my memoirs.",
+     "'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "12. line Down",
+    ["BRAILLE LINE:  '      $l'",
+     "     VISIBLE:  '      $l', cursor=1",
+     "SPEECH OUTPUT: 'entry      "]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "13. line Down",
+    ["BRAILLE LINE:  'Check one or more:'",
+     "     VISIBLE:  'Check one or more:', cursor=1",
+     "SPEECH OUTPUT: 'Check one or more:"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "14. line Down",
+    ["BRAILLE LINE:  '< > Red check box'",
+     "     VISIBLE:  '< > Red check box', cursor=0",
+     "SPEECH OUTPUT: 'Red check box not checked"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "15. line Down",
+    ["BRAILLE LINE:  'Red'",
+     "     VISIBLE:  'Red', cursor=1",
+     "SPEECH OUTPUT: 'Red"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "16. line Down",
+    ["BRAILLE LINE:  '< > Blue check box'",
+     "     VISIBLE:  '< > Blue check box', cursor=0",
+     "SPEECH OUTPUT: 'Blue check box not checked"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "17. line Down",
+    ["BRAILLE LINE:  'Blue'",
+     "     VISIBLE:  'Blue', cursor=1",
+     "SPEECH OUTPUT: 'Blue"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "18. line Down",
+    ["BRAILLE LINE:  '< > Green check box'",
+     "     VISIBLE:  '< > Green check box', cursor=0",
+     "SPEECH OUTPUT: 'Green check box not checked"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "19. line Down",
+    ["BRAILLE LINE:  'Green'",
+     "     VISIBLE:  'Green', cursor=1",
+     "SPEECH OUTPUT: 'Green"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "20. line Down",
+    ["BRAILLE LINE:  'Make a selection:'",
+     "     VISIBLE:  'Make a selection:', cursor=1",
+     "SPEECH OUTPUT: 'Make a selection:"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "21. line Down",
+    ["BRAILLE LINE:  'Water combo box'",
+     "     VISIBLE:  'Water combo box', cursor=0",
+     "SPEECH OUTPUT: 'Water combo box"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "22. line Down",
+    ["BRAILLE LINE:  'Which sports do you like?'",
+     "     VISIBLE:  'Which sports do you like?', cursor=1",
+     "SPEECH OUTPUT: 'Which sports do you like?"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "23. line Down",
+    ["BRAILLE LINE:  'Hockey list box'",
+     "     VISIBLE:  'Hockey list box', cursor=0",
+     "SPEECH OUTPUT: 'Hockey multi-select List with 4 items"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "24. line Down",
+    ["BRAILLE LINE:  'Dashing picture of Willie Walker image'",
+     "     VISIBLE:  'Dashing picture of Willie Walker', cursor=0",
+     "SPEECH OUTPUT: 'Dashing picture of Willie Walker image"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "25. line Down",
+    ["BRAILLE LINE:  'Ain't he handsome (please say yes)?'",
+     "     VISIBLE:  'Ain't he handsome (please say ye', cursor=1",
+     "SPEECH OUTPUT: 'Ain't he handsome (please say yes)?"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "26. line Down",
+    ["BRAILLE LINE:  '& y radio button'",
+     "     VISIBLE:  '& y radio button', cursor=0",
+     "SPEECH OUTPUT: 'not selected radio button'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "27. line Down",
+    ["BRAILLE LINE:  'Yes'",
+     "     VISIBLE:  'Yes', cursor=1",
+     "SPEECH OUTPUT: 'Yes'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "28. line Down",
+    ["BRAILLE LINE:  '& y radio button'",
+     "     VISIBLE:  '& y radio button', cursor=0",
+     "SPEECH OUTPUT: 'not selected radio button'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Down"))
+sequence.append(utils.AssertPresentationAction(
+    "29. line Down",
+    ["BRAILLE LINE:  'No'",
+     "     VISIBLE:  'No', cursor=1",
+     "SPEECH OUTPUT: 'No'"]))
+
+sequence.append(utils.AssertionSummaryAction())
+sequence.start()
diff --git a/test/keystrokes/firefox/object_nav_simple_form_down.settings 
b/test/keystrokes/firefox/object_nav_simple_form_down.settings
new file mode 100644
index 0000000..d66b1e4
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_simple_form_down.settings
@@ -0,0 +1,122 @@
+{
+    "profiles": {
+        "default": {
+            "keybindings": {}, 
+            "pronunciations": {}, 
+            "profile": [
+                "Default", 
+                "default"
+            ]
+        }
+    }, 
+    "general": {
+        "speakSpreadsheetCoordinates": true, 
+        "disableBrailleEOL": false, 
+        "profile": [
+            "Default", 
+            "default"
+        ], 
+        "enableContractedBraille": false, 
+        "findResultsMinimumLength": 4, 
+        "readTableCellRow": true, 
+        "brailleAlignmentStyle": 0, 
+        "presentDateFormat": "%x", 
+        "flashIsPersistent": false, 
+        "brailleRequiredStateString": null, 
+        "voices": {
+            "hyperlink": {
+                "established": false
+            }, 
+            "system": {
+                "established": false
+            }, 
+            "default": {
+                "established": false
+            }, 
+            "uppercase": {
+                "average-pitch": 7.0
+            }
+        }, 
+        "enableSpeechIndentation": false, 
+        "chatSpeakRoomName": false, 
+        "flashVerbosityLevel": 1, 
+        "enableBraille": true, 
+        "speakCellHeaders": true, 
+        "layoutMode": false, 
+        "enableBrailleMonitor": true, 
+        "progressBarUpdateInterval": 10, 
+        "enableProgressBarUpdates": true, 
+        "chatRoomHistories": false, 
+        "enableTutorialMessages": false, 
+        "enableFunctionKeys": true, 
+        "brailleContractionTable": "", 
+        "speechRequiredStateString": null, 
+        "messageVerbosityLevel": 1, 
+        "verbalizePunctuationStyle": 1, 
+        "enableBrailleContext": true, 
+        "enableDiacriticalKeys": false, 
+        "brailleRolenameStyle": 1, 
+        "mouseDwellDelay": 0, 
+        "wrappedStructuralNavigation": true, 
+        "enableKeyEcho": false, 
+        "enableEchoByWord": false, 
+        "presentToolTips": false, 
+        "enableNavigationKeys": false, 
+        "startingProfile": [
+            "Default", 
+            "default"
+        ], 
+        "enabledBrailledTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; text-spelling:none;", 
+        "sayAllStyle": 1, 
+        "keyboardLayout": 1, 
+        "structNavTriggersFocusMode": false, 
+        "textAttributesBrailleIndicator": 0, 
+        "enableSpeech": true, 
+        "speechVerbosityLevel": 1, 
+        "onlySpeakDisplayedText": false, 
+        "speechServerFactory": "speechdispatcherfactory", 
+        "skipBlankCells": false, 
+        "enableActionKeys": true, 
+        "enableModifierKeys": true, 
+        "brailleLinkIndicator": 192, 
+        "orcaModifierKeys": [
+            "Insert", 
+            "KP_Insert"
+        ], 
+        "enablePauseBreaks": true, 
+        "enablePrintableKeys": true, 
+        "speakMultiCaseStringsAsWords": false, 
+        "spellcheckSpellError": true, 
+        "spellcheckPresentContext": true, 
+        "caretNavTriggersFocusMode": false, 
+        "findResultsVerbosity": 2, 
+        "largeObjectTextLength": 75, 
+        "enableMnemonicSpeaking": false, 
+        "enableMouseReview": false, 
+        "speakBlankLines": true, 
+        "speechServerInfo": null, 
+        "speakCellSpan": true, 
+        "enableFlashMessages": true, 
+        "brailleSelectorIndicator": 192, 
+        "spellcheckSpellSuggestion": true, 
+        "chatMessageVerbosity": 0, 
+        "progressBarVerbosity": 1, 
+        "brailleFlashTime": 5000, 
+        "enableEchoBySentence": false, 
+        "structuralNavigationEnabled": true, 
+        "useColorNames": true, 
+        "enabledSpokenTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; paragraph-style:; text-spelling:none;", 
+        "speakCellCoordinates": true, 
+        "enableEchoByCharacter": false, 
+        "enablePositionSpeaking": false, 
+        "brailleVerbosityLevel": 1, 
+        "presentTimeFormat": "%X", 
+        "chatAnnounceBuddyTyping": false, 
+        "activeProfile": [
+            "Default", 
+            "default"
+        ]
+    }, 
+    "keybindings": {}, 
+    "pronunciations": {}
+}
diff --git a/test/keystrokes/firefox/object_nav_simple_form_up.params 
b/test/keystrokes/firefox/object_nav_simple_form_up.params
new file mode 100644
index 0000000..c5f2f6b
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_simple_form_up.params
@@ -0,0 +1 @@
+PARAMS=$TEST_DIR/../../html/simpleform.html
diff --git a/test/keystrokes/firefox/object_nav_simple_form_up.py 
b/test/keystrokes/firefox/object_nav_simple_form_up.py
new file mode 100644
index 0000000..187153a
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_simple_form_up.py
@@ -0,0 +1,264 @@
+#!/usr/bin/python
+
+"""Test of object navigation."""
+
+from macaroon.playback import *
+import utils
+
+sequence = MacroSequence()
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("<Control>End"))
+sequence.append(utils.AssertPresentationAction(
+    "1. End of file",
+    ["BRAILLE LINE:  'No'",
+     "     VISIBLE:  'No', cursor=2",
+     "SPEECH OUTPUT: 'No'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "2. line Up",
+    ["BRAILLE LINE:  '& y radio button'",
+     "     VISIBLE:  '& y radio button', cursor=0",
+     "SPEECH OUTPUT: 'not selected radio button'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "3. line Up",
+    ["BRAILLE LINE:  'Yes'",
+     "     VISIBLE:  'Yes', cursor=1",
+     "SPEECH OUTPUT: 'Yes'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "4. line Up",
+    ["BRAILLE LINE:  '& y radio button'",
+     "     VISIBLE:  '& y radio button', cursor=0",
+     "SPEECH OUTPUT: 'not selected radio button'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "5. line Up",
+    ["BRAILLE LINE:  'Ain't he handsome (please say yes)?'",
+     "     VISIBLE:  'Ain't he handsome (please say ye', cursor=1",
+     "SPEECH OUTPUT: 'Ain't he handsome (please say yes)?"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "6. line Up",
+    ["BRAILLE LINE:  'Dashing picture of Willie Walker image'",
+     "     VISIBLE:  'Dashing picture of Willie Walker', cursor=0",
+     "SPEECH OUTPUT: 'Dashing picture of Willie Walker image"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "7. line Up",
+    ["BRAILLE LINE:  'Hockey list box'",
+     "     VISIBLE:  'Hockey list box', cursor=0",
+     "SPEECH OUTPUT: 'Hockey multi-select List with 4 items"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "8. line Up",
+    ["BRAILLE LINE:  'Which sports do you like?'",
+     "     VISIBLE:  'Which sports do you like?', cursor=1",
+     "SPEECH OUTPUT: 'Which sports do you like?"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "9. line Up",
+    ["BRAILLE LINE:  'Water combo box'",
+     "     VISIBLE:  'Water combo box', cursor=0",
+     "SPEECH OUTPUT: 'Water combo box"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "10. line Up",
+    ["BRAILLE LINE:  'Make a selection:'",
+     "     VISIBLE:  'Make a selection:', cursor=1",
+     "SPEECH OUTPUT: 'Make a selection:"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "11. line Up",
+    ["BRAILLE LINE:  'Green'",
+     "     VISIBLE:  'Green', cursor=1",
+     "SPEECH OUTPUT: 'Green"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "12. line Up",
+    ["BRAILLE LINE:  '< > Green check box'",
+     "     VISIBLE:  '< > Green check box', cursor=0",
+     "SPEECH OUTPUT: 'Green check box not checked"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "13. line Up",
+    ["KNOWN ISSUE: We are hitting this blank on the way up",
+     "BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=0",
+     "SPEECH OUTPUT: 'blank'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "14. line Up",
+    ["BRAILLE LINE:  'Blue'",
+     "     VISIBLE:  'Blue', cursor=1",
+     "SPEECH OUTPUT: 'Blue"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "15. line Up",
+    ["BRAILLE LINE:  '< > Blue check box'",
+     "     VISIBLE:  '< > Blue check box', cursor=0",
+     "SPEECH OUTPUT: 'Blue check box not checked"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "16. line Up",
+    ["KNOWN ISSUE: We are hitting this blank on the way up",
+     "BRAILLE LINE:  ''",
+     "     VISIBLE:  '', cursor=0",
+     "SPEECH OUTPUT: 'blank'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "17. line Up",
+    ["BRAILLE LINE:  'Red'",
+     "     VISIBLE:  'Red', cursor=1",
+     "SPEECH OUTPUT: 'Red"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "18. line Up",
+    ["BRAILLE LINE:  '< > Red check box'",
+     "     VISIBLE:  '< > Red check box', cursor=0",
+     "SPEECH OUTPUT: 'Red check box not checked"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "19. line Up",
+    ["BRAILLE LINE:  'Check one or more:'",
+     "     VISIBLE:  'Check one or more:', cursor=1",
+     "SPEECH OUTPUT: 'Check one or more:"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "20. line Up",
+    ["BRAILLE LINE:  '      $l'",
+     "     VISIBLE:  '      $l', cursor=1",
+     "SPEECH OUTPUT: 'entry      "]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "21. line Up",
+    ["BRAILLE LINE:  'to write my memoirs. $l'",
+     "     VISIBLE:  'to write my memoirs. $l', cursor=1",
+     "SPEECH OUTPUT: 'entry to write my memoirs.",
+     "'"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "22. line Up",
+    ["BRAILLE LINE:  'I've recently taken up typing and plan  $l'",
+     "     VISIBLE:  'I've recently taken up typing an', cursor=1",
+     "SPEECH OUTPUT: 'entry I've recently taken up typing and plan "]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "23. line Up",
+    ["BRAILLE LINE:  'to swing from trees and eat bananas.   $l'",
+     "     VISIBLE:  'to swing from trees and eat bana', cursor=1",
+     "SPEECH OUTPUT: 'entry to swing from trees and eat bananas.  "]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "24. line Up",
+    ["BRAILLE LINE:  'I am a monkey with a long tail.  I like  $l'",
+     "     VISIBLE:  'I am a monkey with a long tail. ', cursor=1",
+     "SPEECH OUTPUT: 'entry I am a monkey with a long tail.  I like "]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "25. line Up",
+    ["BRAILLE LINE:  'Tell me a little more about yourself:'",
+     "     VISIBLE:  'Tell me a little more about your', cursor=1",
+     "SPEECH OUTPUT: 'Tell me a little more about yourself:"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "26. line Up",
+    ["BRAILLE LINE:  ' $l'",
+     "     VISIBLE:  ' $l', cursor=0",
+     "SPEECH OUTPUT: 'password text"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "27. line Up",
+    ["BRAILLE LINE:  'Tell me a secret:'",
+     "     VISIBLE:  'Tell me a secret:', cursor=1",
+     "SPEECH OUTPUT: 'Tell me a secret:"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "28. line Up",
+    ["BRAILLE LINE:  ' $l'",
+     "     VISIBLE:  ' $l', cursor=1",
+     "BRAILLE LINE:  ' $l'",
+     "     VISIBLE:  ' $l', cursor=1",
+     "SPEECH OUTPUT: 'entry"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "29. line Up",
+    ["BRAILLE LINE:  'Magic disappearing text trick:'",
+     "     VISIBLE:  'Magic disappearing text trick:', cursor=1",
+     "SPEECH OUTPUT: 'Magic disappearing text trick:"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "30. line Up",
+    ["BRAILLE LINE:  ' $l'",
+     "     VISIBLE:  ' $l', cursor=0",
+     "SPEECH OUTPUT: 'entry"]))
+
+sequence.append(utils.StartRecordingAction())
+sequence.append(KeyComboAction("Up"))
+sequence.append(utils.AssertPresentationAction(
+    "31. line Up",
+    ["BRAILLE LINE:  'Type something here:'",
+     "     VISIBLE:  'Type something here:', cursor=1",
+     "SPEECH OUTPUT: 'Type something here:'"]))
+
+sequence.append(utils.AssertionSummaryAction())
+sequence.start()
diff --git a/test/keystrokes/firefox/object_nav_simple_form_up.settings 
b/test/keystrokes/firefox/object_nav_simple_form_up.settings
new file mode 100644
index 0000000..d66b1e4
--- /dev/null
+++ b/test/keystrokes/firefox/object_nav_simple_form_up.settings
@@ -0,0 +1,122 @@
+{
+    "profiles": {
+        "default": {
+            "keybindings": {}, 
+            "pronunciations": {}, 
+            "profile": [
+                "Default", 
+                "default"
+            ]
+        }
+    }, 
+    "general": {
+        "speakSpreadsheetCoordinates": true, 
+        "disableBrailleEOL": false, 
+        "profile": [
+            "Default", 
+            "default"
+        ], 
+        "enableContractedBraille": false, 
+        "findResultsMinimumLength": 4, 
+        "readTableCellRow": true, 
+        "brailleAlignmentStyle": 0, 
+        "presentDateFormat": "%x", 
+        "flashIsPersistent": false, 
+        "brailleRequiredStateString": null, 
+        "voices": {
+            "hyperlink": {
+                "established": false
+            }, 
+            "system": {
+                "established": false
+            }, 
+            "default": {
+                "established": false
+            }, 
+            "uppercase": {
+                "average-pitch": 7.0
+            }
+        }, 
+        "enableSpeechIndentation": false, 
+        "chatSpeakRoomName": false, 
+        "flashVerbosityLevel": 1, 
+        "enableBraille": true, 
+        "speakCellHeaders": true, 
+        "layoutMode": false, 
+        "enableBrailleMonitor": true, 
+        "progressBarUpdateInterval": 10, 
+        "enableProgressBarUpdates": true, 
+        "chatRoomHistories": false, 
+        "enableTutorialMessages": false, 
+        "enableFunctionKeys": true, 
+        "brailleContractionTable": "", 
+        "speechRequiredStateString": null, 
+        "messageVerbosityLevel": 1, 
+        "verbalizePunctuationStyle": 1, 
+        "enableBrailleContext": true, 
+        "enableDiacriticalKeys": false, 
+        "brailleRolenameStyle": 1, 
+        "mouseDwellDelay": 0, 
+        "wrappedStructuralNavigation": true, 
+        "enableKeyEcho": false, 
+        "enableEchoByWord": false, 
+        "presentToolTips": false, 
+        "enableNavigationKeys": false, 
+        "startingProfile": [
+            "Default", 
+            "default"
+        ], 
+        "enabledBrailledTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; text-spelling:none;", 
+        "sayAllStyle": 1, 
+        "keyboardLayout": 1, 
+        "structNavTriggersFocusMode": false, 
+        "textAttributesBrailleIndicator": 0, 
+        "enableSpeech": true, 
+        "speechVerbosityLevel": 1, 
+        "onlySpeakDisplayedText": false, 
+        "speechServerFactory": "speechdispatcherfactory", 
+        "skipBlankCells": false, 
+        "enableActionKeys": true, 
+        "enableModifierKeys": true, 
+        "brailleLinkIndicator": 192, 
+        "orcaModifierKeys": [
+            "Insert", 
+            "KP_Insert"
+        ], 
+        "enablePauseBreaks": true, 
+        "enablePrintableKeys": true, 
+        "speakMultiCaseStringsAsWords": false, 
+        "spellcheckSpellError": true, 
+        "spellcheckPresentContext": true, 
+        "caretNavTriggersFocusMode": false, 
+        "findResultsVerbosity": 2, 
+        "largeObjectTextLength": 75, 
+        "enableMnemonicSpeaking": false, 
+        "enableMouseReview": false, 
+        "speakBlankLines": true, 
+        "speechServerInfo": null, 
+        "speakCellSpan": true, 
+        "enableFlashMessages": true, 
+        "brailleSelectorIndicator": 192, 
+        "spellcheckSpellSuggestion": true, 
+        "chatMessageVerbosity": 0, 
+        "progressBarVerbosity": 1, 
+        "brailleFlashTime": 5000, 
+        "enableEchoBySentence": false, 
+        "structuralNavigationEnabled": true, 
+        "useColorNames": true, 
+        "enabledSpokenTextAttributes": "size:; family-name:; weight:400; indent:0; underline:none; 
strikethrough:false; justification:left; style:normal; paragraph-style:; text-spelling:none;", 
+        "speakCellCoordinates": true, 
+        "enableEchoByCharacter": false, 
+        "enablePositionSpeaking": false, 
+        "brailleVerbosityLevel": 1, 
+        "presentTimeFormat": "%X", 
+        "chatAnnounceBuddyTyping": false, 
+        "activeProfile": [
+            "Default", 
+            "default"
+        ]
+    }, 
+    "keybindings": {}, 
+    "pronunciations": {}
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]