Moved the search of elements to an ElementFinder #850
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This extracts the complex logic out of
Element::findAll. The logic is better encapsulated and this keeps the collaborators of the element to a sane number.This makes testing of Element classes a lot easier as we don't need to configure mocks in a way covering the
namedspecial selector (as this happens inside the ElementFinder now).The testsuite is also more reliable by using the proper types for return values (instead of using strings in places expecting to return an array of NodeElement) and using
willReturnValueMapinstead of relying on the order of invocations (which is deprecated in phpunit)In Mink 2.0, when the driver
findmethod will return an array of Xpath strings instead of NodeElement (so that it does not need to depend on the Session or on other higher-level parts of the API), the ElementFinder will be the place where the instantiation takes place.refs #542 and #415