Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-66979

Switch all the behat testing to the new W3C drivers




      Brief history

      (note there are a bunch of intermediate layers involved, but this is a brief history to make it all understandable)

      Behat, in order to control real browsers with Selenium has been using the called "JsonWire" protocol (invented by Selenium). That protocol provided a standard API to navigate, click type... control the browser, basically. And browsers had support for it (receiving the commands and performing the actions).

      That "JsonWire" has evolved into a new, standard new API, called the "W3C protocol" that, while shares many of the concepts with its ancestor, it's not compatible with it and does things differently.

      And the trend is to support the W3C protocol everywhere, with the old one being phased out / deprecated by all browsers.

      Current status (by browser)

      Right now, support for the old (JsonWire) and new (W3C) protocols are as follow:

      • Firefox: Old protocol was supported until 2.53.1. All versions after that one do use, exclusively, the new W3C protocol.
      • Chrome: It still supports both protocols, but recently switched the default to W3C, and clearly it's going to be the one remaining.
      • Edge, Safari...: In theory, they only support the W3C protocol (in theory because we have not been able to test them ever, exactly because we are missing W3C support).

      Current status (our testing framework)

      Basically, and as commented above, we use Behat, that uses Mink, that uses some low level drivers and our own moodle behat extension. And that stack is missing support for the new W3C protocol.

      We need to ensure that the whole stack is W3C compatible to get this done. And some of the pieces (mink, low level drivers...) aren't progressing as it should be desired. Without them, we hardly can try/perform the switch.

      So right now we are using an old Firefox version (2.53.1) - that is lacking some good JS standards support and current Chrome with the protocol forced to the old "JsonWire" one.

      And we are monitoring ongoing issues @ both mink and instaclick projects to see if there is any progress there:


      And that's basically, the problem. This issue is a container to add all the related information and updates we gather out there and plan which actions to perform once the goal (switch to W3C protocol) was possible.


        Issue Links



              dobedobedoh Andrew Lyons
              stronk7 Eloy Lafuente (stronk7)
              Jun Pataleta Jun Pataleta
              Eloy Lafuente (stronk7) Eloy Lafuente (stronk7)
              CiBoT CiBoT
              4 Vote for this issue
              10 Start watching this issue



                Time Tracking

                  Original Estimate - Not Specified
                  Not Specified
                  Remaining Estimate - 0 minutes
                  Time Spent - 5 weeks, 1 day, 3 hours, 15 minutes
                  5w 1d 3h 15m