w3c / w3c/webdriver

Clarify how firstMatch capabilities are validated against alwaysMatch

Open
#1,203 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
718
Forks
228
PR merge metrics
No merged PRs in 30d

Description

According to the spec, once capabilities have been validated, we iterate firstMatch list, trying to merge and match the capabilities. As soon as we have a match we return the merged capabilities. This means that there might be duplicated entries in first and always as long as any previous one matches. This is what happens in test merge.py::test_merge_invalid, that includes an empty object as the first item of every firstMatch list. The test passes in firefox, because it first checks that there isn't duplicated entries in first and always and then it does the merge and match. If that was the idea, then we should fix the spec, probably adding a step before the iteration to do the check, and remove the check from the merge algorithm. Otherwise we should fix the test by removing the initial empty object from the firstMatch list.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with merge.py::test_merge_invalid and the specification steps for validating capabilities and merging firstMatch with alwaysMatch. Determine whether duplicate entries must be rejected before iteration or whether the test is wrong, then align the specification and test so the validation and merge behavior agree.

Written by the indexing model from the issue text.

Assessment

Tech stack
html
Domain
documentation, testing-qa
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.