Skip to content

Improve NVDA Update Check URL testing to be more robust #17205

@SaschaCowley

Description

@SaschaCowley

Steps to reproduce:

  1. Use an NVDA alpha that includes the update mirror functionality introduced in Add the ability to specify NVDA update check URL from within NVDA #17151.
  2. In NVDA's General settings, set the update mirror to a URL that resolves to a website, but which is not an NVDA update check mirror (or the NV Access NVDA update server).
  3. Press the "Test..." button.

Actual behavior:

NVDA reports that the test passed. However, when one attempts to check for NVDA updates, the check will fail as the URL that is now used does not return data that is meaningful in this context.

Expected behavior:

NVDA should report that the check failed.

Technical details

I believe the best way of implementing this is to add a minimal schema for NVDA update metadata to updateCheck.py, and extract the parsing logic from updateCheck.checkForUpdate into its own method. A validator option should be added to gui._SetURLDialog.SetURLDialog, so that a callable that parses and validates the received data can be added to instances of this dialog. A function that parses and validates update check data can then be passed into the set update mirror dialog.

NVDA logs, crash dumps and other attachments:

N/A

System configuration

NVDA installed/portable/running from source:

Installed or portable

NVDA version:

Any version after 05eb87a

Windows version:

N/A

Name and version of other software in use when reproducing the issue:

N/A

Other information about your system:

N/A

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

N/A

If NVDA add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature/update-checkgood first issuegithub features these at https://github.com/nvaccess/nvda/contributep4https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#prioritytriagedHas been triaged, issue is waiting for implementation.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions