Closed craigfowler closed 6 years ago
Another solution to consider is a JSON-based format.
Something like:
These can still be compiled in as resources but could be overridden by ones supplied from the consuming code.
This is very closely related to this related issue in the WebDriverExtras repository. In that issue I'll be creating a provider that is able to receive an object model of web driver flags. That object model will have the shape described in this ticket.
Migrated
I have a mechanism for describing the capabilities of web browsers and then detecting those capabilities within test code (particularly actions).
Unfortunately browser and OS versions and their behaviours presents us with a moving target and so this mechanism needs to be expanded upon.
Desired features of new system
Proposed solution
Use a text-based tabular format like CSV for the browser capabilities. This would be a matrix of version numbers and the capabilities showing which apply to which.
Each browser and OS combination gets a single text file. Each file would be compiled into an assembly which can then be shipped as a NuGet package. This would be frequently re-released with updates.
When a file has an OS then that is used. Also an earlier OS version may be used as a fallback. Finally a non-versioned OS version of the file may also be used.
We need a separate OS file which lists the operating system versions and how they relate to one another: