* Initial selenium test
* Try configuring Travis to run selenium tests on Sauce
* Encryption key needs to be for my account, not jupyter
* Install selenium on Travis
* Get more data from server info file
* Set cwd when launching notebook server
Will this help on Travis?
* Use JUPYTER_TEST_BROWSER=chrome to test with Chrome
* Debugging test
* Separate fixtures into conftest.py
* Try with --Cls.a=b option syntax
* Try using sauce labs directly, not through Travis proxy
* Back to using proxy, with http instead of https
Idea from https://stackoverflow.com/questions/48236104/ssl-errors-using-
sauce-labs-in-travis-ci-with-selenium-webriver-tests-django-pr
* Specify browserName in desired_capabilities for Sauce
* Try connecting to Sauce for only some jobs in matrix
* Exclude selenium tests from regular test run
* Remove redundant JS test for dashboard navigation (converted to Selenium)
* Re-enable other tests
* Exclude selenium tests on Appveyor
* Later browser versions are available on Windows
* Try running tests with Firefox 57 instead of 58
* Try running with local Firefox on Travis
* Install geckodriver for Selenium tests
* Untar the right version of geckodriver
* Try stepping back one version of Firefox again
1) finish the step allowing the use of es6
- this include some tweak to web pack configuration to speed up
recompile in watch mode (in particular cache sourcemaps).
- enable eslint (error only), on obvious mistakes.
- setup babel to compile to es5 as a target.
2) Make the test pass under Casper that does not always have
`Function.prototype.bind` defined, which we cannot patch only in the
tests.
3) Write an actual shortcut editor that list and allow to modify most of
the command mode shortcut.
The logic to persist the shortcuts is a bit tricky as there are default
keyboard shortcuts, and so when you "unbind" them you need to re-unbind
them at next startup. This does not work for a few shortcut for
technical reasons: `<Esc>`, `<Shift>`, as well as `<Ctrl-Shift-P>` and `<F>`
which register asynchronously, so are not detected as "default"
shortcuts.
This is a lazy thing to do because intermittently failing tests are often actual bugs
(usually in the tests themselves).
But if we are just going to kick Travis to re-run when this happens,
we might as well let Travis do it automatically.
It use the notion of Head/Anchor moving the selection normally move both
the head and the anchor. It is possible to mot move the anchor, for
example by pressing Shift.
Everything in between the head and the anchor (head and anchor included)
is in a "soft-selection" marked with the 'jupyter-soft-selection' class
in CSS.
This then remove completely the notion of marked cell, and thus disallow
discontinuous selection.
Unlike previous implementation the used a thick left border, this use
background gradient with 2 stops at the same position to archived the
same visual effect without the gap in between left border in between
contiguous cells.
For compatibility with previous versions, a few choices have been made.
An extra multi-selected class is added to the body when multiple
cells are selected. This allow to toggle the background to a soft blue
indicating selection. And the Head of the selection is still called the
"selected" cell.
The on_focus event have been reworked as a
click-let-click-release-outside of codemirror was putting the notebook
in undefined state with multiple selected cells, and the head in edit
mode.
Finally Travis now test on edge group, to get faster, which can be
removed in a few weeks as the all infrastructure of Travis will move on
Google Cloud.