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

Switch all the behat testing to the new W3C drivers

XMLWordPrintable

    • MOODLE_310_STABLE, MOODLE_311_STABLE, MOODLE_35_STABLE, MOODLE_36_STABLE, MOODLE_37_STABLE, MOODLE_38_STABLE, MOODLE_39_STABLE, MOODLE_400_STABLE
    • MOODLE_310_STABLE, MOODLE_39_STABLE
    • MDL-66979-master-7
    • Hide

      You will need to test that you can run behat locally against:

      • a recent version of Firefox
      • a recent version of Chrome
      • a version of Edge if you want

      You may also wish to try:

      • using chromedriver directly
      • using geckodriver directly
      • chrome and firefox headless
      Show
      You will need to test that you can run behat locally against: a recent version of Firefox a recent version of Chrome a version of Edge if you want You may also wish to try: using chromedriver directly using geckodriver directly chrome and firefox headless

      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:

      Goals

      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.

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

              Created:
              Updated:
              Resolved:

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

                  Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.