Commit Graph

280 Commits

Author SHA1 Message Date
Richard Hansen f00b1ae89b Merge branch 'master' into develop 2021-11-28 23:10:45 -05:00
Richard Hansen 19909eae53 ImportEtherpad: Rigorously check imported data 2021-11-28 22:28:55 -05:00
Richard Hansen 23f8a12922 ImportEtherpad: Don't make any changes if data is bad 2021-11-28 22:28:55 -05:00
Richard Hansen a2e77a7128 ImportEtherpad: Enforce single-pad records 2021-11-28 22:28:54 -05:00
Richard Hansen 00fc7c8e86 ImportEtherpad: Reject unknown DB records 2021-11-28 22:27:44 -05:00
Richard Hansen fea7948b05 ImportEtherpad: Fix author info processing 2021-11-28 19:00:44 -05:00
Richard Hansen 777d045246 GroupManager: Clean up any mappings when deleting a group 2021-11-28 14:06:47 +00:00
webzwo0i 0983985dd5 easysync tests: Split into multiple files 2021-11-23 21:07:08 -05:00
webzwo0i 617515bcbb easysync tests: Group related tests 2021-11-23 21:07:08 -05:00
webzwo0i 310444f5d3 easysync tests: Rename tests 2021-11-23 21:07:08 -05:00
webzwo0i ec3833ab66 easysync tests: Convert IIFE into a `describe()` 2021-11-23 21:07:08 -05:00
Richard Hansen 6a7b54313f easysync tests: Move shared helper functions to the top
This will make it easier to split `easysync.js` into multiple files.
2021-11-23 21:07:08 -05:00
Richard Hansen 89fe40e080 Changeset: Migrate from `OpIter` to `deserializeOps()` 2021-11-23 01:21:49 -05:00
Richard Hansen 657492e191 Changeset: Turn `newOp()` into a real class 2021-11-23 01:21:12 -05:00
Richard Hansen fba0bb6dff Changeset: Turn `textLinesMutator()` into a real class 2021-11-23 01:21:12 -05:00
Richard Hansen dab881139d Pad: Fix `copyPadWithoutHistory` apool corruption bug 2021-11-22 18:40:22 -05:00
Richard Hansen ed78b56079 tests: Refine `copyPadWithoutHistory` tests 2021-11-22 18:40:22 -05:00
Richard Hansen d74dd235a4 Changeset: Replace `appendATextToAssembler()` with a generator 2021-11-22 18:10:37 -05:00
Richard Hansen f1eb7a25a6 Changeset: Migrate to the new attribute API 2021-11-21 04:11:41 -05:00
Richard Hansen f40d285109 tests: Refine contentcollector tests 2021-11-21 04:11:41 -05:00
Richard Hansen 6cf2055199 Changeset: New API to simplify attribute processing 2021-11-21 04:11:41 -05:00
Richard Hansen 4a65c2c8ff Changeset: Unexport unnecessarily exported functions
These functions aren't used outside of this file.
2021-11-13 17:44:38 -05:00
Richard Hansen 263105d185 tests: Remove overly aggressive timeouts 2021-11-13 03:05:38 -05:00
Richard Hansen 3c6aef11bd lint: Add `'use strict';` 2021-11-13 03:02:40 -05:00
Richard Hansen 26675c5019 chat: New `chatNewMessage` server-side hook 2021-11-01 01:54:29 -04:00
Richard Hansen 23a98e5946 tests: Refactor `waitForSocketEvent()` to improve readability 2021-11-01 01:54:29 -04:00
Richard Hansen 3132235f2c tests: Rename `getSocketEvent()` to `waitForSocketEvent()` 2021-11-01 01:54:29 -04:00
Richard Hansen 65bd597053 tests: Move socket.io connection helpers to `common.js` 2021-11-01 01:54:28 -04:00
Richard Hansen bea57ff249 tests: Use `logger` variable for consistency 2021-11-01 01:54:28 -04:00
Richard Hansen 9fbd2e5c3d chat: New `chatSendMessage` client-side hook 2021-11-01 01:54:28 -04:00
Richard Hansen 0f47ca9046 chat: Plumb message object end to end
This will make it possible for future commits to add hooks that allow
plugins to augment chat messages with arbitrary metadata.
2021-11-01 01:54:28 -04:00
Richard Hansen f1f4ed7c58 chat: Allow `chatNewMessage` hook to control rendering 2021-11-01 01:54:28 -04:00
Richard Hansen 2597b940f4 chat: Give `chatNewMessage` hook access to the raw message object 2021-11-01 01:54:28 -04:00
Richard Hansen fc5a3f553d chat: Test processing in `chatNewMessage` hook 2021-11-01 01:54:28 -04:00
Richard Hansen e471cb12e6 tests: Also spy on initially loaded chat messages 2021-11-01 01:54:28 -04:00
Richard Hansen 66a8c48fac tests: Save the CHAT_MESSAGE payload, not the wrapper 2021-11-01 01:54:28 -04:00
Richard Hansen c8e0916e1a tests: Spy on socket.io messages as early as possible 2021-11-01 01:54:28 -04:00
Richard Hansen e28c9ffc97 tests: Support injecting hook functions during pad load 2021-11-01 01:54:28 -04:00
Richard Hansen c8e544ec8d tests: Fix handling of nullish module definitions 2021-11-01 01:54:28 -04:00
Richard Hansen d36a37d666 PadMessageHandler: Delete unnecessary `protocolVersion`
We can assume that the client code is always in sync with what the
server expects.
2021-10-30 03:06:57 -04:00
webzwo0i 63de249236 tests: do not re-add identical text with setText 2021-10-29 02:29:45 -04:00
Richard Hansen 4f283b64cf tests: easysync: Inline some functions that are only used once 2021-10-17 00:49:34 +02:00
Richard Hansen e535129f3c tests: easysync: Use `expect.js` for checks 2021-10-17 00:49:34 +02:00
Richard Hansen ebb7dfabd7 tests: easysync: Use mocha `describe()` and `it()` 2021-10-17 00:49:34 +02:00
Richard Hansen 2c7d0604c3 tests: easysync: Remove unnecessary `Random` class 2021-10-17 00:49:34 +02:00
Richard Hansen 8dd61f847e tests: easysync: Fix some ESLint errors 2021-10-17 00:49:34 +02:00
Richard Hansen 59a6a9f6a0 tests: easysync: Delete commented-out and unused code 2021-10-17 00:49:34 +02:00
Richard Hansen 428736cdc3 tests: easysync: Run with the frontend tests 2021-10-17 00:49:34 +02:00
Richard Hansen 0ea6f1518c tests: Remove overly agressive timeouts 2021-10-07 20:31:54 -04:00
Richard Hansen 2155e216a6 tests: Remove overly agressive timeouts 2021-10-07 19:53:03 -04:00
Richard Hansen e8514db365 tests: Replace manual checks with `assert` 2021-10-03 20:23:30 -04:00
Richard Hansen 72b12bc97b tests: Slight backend test reorganization
* Delete some useless uses of `describe()`
  * Combine some dependent tests
  * Rename some tests to avoid duplicate names
2021-10-03 20:06:33 -04:00
Richard Hansen dd37251da4 tests: Promisify some backend tests 2021-10-03 19:25:50 -04:00
Richard Hansen 39a971e3b9 tests: Remove overly aggressive timeouts 2021-10-03 19:25:50 -04:00
John McLear c361df52d2 bugfix: Allow selection to start/end before line marker 2021-10-02 02:41:58 -04:00
webzwo0i 0de41ee087 adminsettings test: Fix save detection race condition
Use MutationObserver to detect if a saveProgress event was received,
which will trigger an animation.

Before this, `helper.admin$('#response').is(':visible')` was true
after the page loaded and before clicking the Save button, so there
was a possibility that after clicking Save, but before sending the
socketio message to the server, the visibility is checked and returns
true, so the page gets reloaded before the changed settings have been
saved.
2021-09-29 23:49:16 -04:00
webzwo0i bb0ca91dc2 adminupdateplugins test: swap assertions, increase timeout 2021-09-29 23:49:16 -04:00
webzwo0i 91d3974a0d adminsettings test: Be a little stricter for some assertions 2021-09-29 23:46:25 -04:00
webzwo0i cc6fda6916 adminsettings test: Fix restart detection
We cannot guarantee that the system time on SauceLabs and Github is in
sync. In case the SauceLabs runner's clock is slow the test would have
failed.
2021-09-29 23:42:41 -04:00
Richard Hansen 653dbb3449 tests: Wait for pad init before returning from `helper.aNewPad()`
This should make it easier to avoid race conditions.
2021-09-28 04:18:24 -04:00
Richard Hansen 15f17b5237 tests: Avoid deprecated `Builder.withCapabilities()` method 2021-09-15 19:42:11 -04:00
Richard Hansen 70c16bb1b5 tests: Check import of export of read-only pad ID 2021-09-15 18:32:06 -04:00
John McLear b683dc300d tests: Check for leak of read-write pad ID when exporting 2021-09-15 18:32:06 -04:00
Richard Hansen 0f5a4bd1f8 tests: Restructure read-only pad export tests
This also adds coverage for `.etherpad` exports.
2021-09-15 18:32:06 -04:00
Richard Hansen bc9cdd6957 SocketIORouter: Add acknowledgement support 2021-09-06 14:45:26 -04:00
Richard Hansen 9f9adb369b SocketIORouter: Don't crash if message handler throws 2021-09-06 14:45:26 -04:00
Richard Hansen 320e5c1109 SocketIORouter: Add unit tests 2021-09-06 14:45:26 -04:00
Richard Hansen 348bc0c269 tests: Delete overly aggressive timeouts
See https://github.com/ether/etherpad-lite/issues/4988 for rationale.
2021-08-30 02:02:37 -04:00
Richard Hansen 7dbd278d1d deps: Bump js-cookie to 3.0.0 2021-08-29 23:36:48 -04:00
Richard Hansen c816c20bc7 HTML import: Replace cheerio with jsdom to simplify contentcollector
Cheerio provides jQuery-like objects but they wrap DOM Node-like
objects that are not 100% API compatible with the DOM spec. Because of
this, contentcollector, which is used in browsers and in Node.js
during HTML import, has until now needed to support two different
APIs. This commit modifies HTML import to use jsdom instead of cheerio
and simplifies contentcollector.
2021-08-12 13:53:23 -04:00
Richard Hansen d723270388 tests: Improve readability of `multipleUsers.js`
* Define utility functions above their use to silence lint warnings.
  * Use `.css()` instead of `.attr('style')` to manipulate style.
  * Pass an object to `.attr()` rather than call once per attribute.
  * Take advantage of chaining.
  * Inline unnecessary `padUrl` variable.
  * Delete some unnecessary comments.
2021-07-25 02:23:50 +02:00
Richard Hansen ff39eeafca tests: Factor out duplicate `getFrameJQuery()` 2021-07-25 02:23:50 +02:00
Richard Hansen 42026ff771 tests: Add a comment explaining why `Promise.all()` is not used 2021-07-25 02:23:50 +02:00
Richard Hansen 01184cd1aa tests: Remove unnecessary `includeJquery` parameter 2021-07-25 02:23:50 +02:00
webzwo0i 62093adce5 tests: refactor inclusion of jquery and sendkeys via script tags
Readability is increased by explicitly checking if jquery/sendkeys was
already loaded before evaluating it in the context of ace_inner and the
enclosing container (pad.html). Note that sendkeys is no longer
evaluated in the context of ace_outer, as this isn't needed

Also removes some IE 8/9 legacy code
2021-07-21 01:53:05 +02:00
Richard Hansen 834e05fc9c Chat: Use a `<textarea>` for message input 2021-07-19 23:44:33 +02:00
Richard Hansen ce5ef9350f tests: sendkeys: Fix `{enter}` keypress event 2021-07-19 23:44:33 +02:00
Richard Hansen 336d48add7 Add support for square brackets in URLs
This reverts commit 9022877cc6.
2021-07-10 22:22:31 -04:00
Richard Hansen 5dcb7a7549 tests: Don't attempt to wrap non-functions 2021-06-14 13:45:13 +02:00
Richard Hansen 081b97c41d tests: Wrap more Mocha functions 2021-06-14 13:45:13 +02:00
Richard Hansen 3e4df68510 tests: Enable fake webcam on Microsoft Edge 2021-06-10 15:36:35 -04:00
Richard Hansen 565b1c5271 tests: Fix flexbox grow/shrink factors
* Make sure the `#mocha-report` div grows to fill the available
    vertical space.
  * Prevent the "Loading frontend test specs..." div from shrinking.
2021-06-10 13:28:55 -04:00
Richard Hansen acd11c3948 tests: Fetch frontend test specs in parallel 2021-06-09 20:28:03 -04:00
Richard Hansen 36d2af5318 tests: Display frontend spec loading progress 2021-06-09 20:18:22 -04:00
Richard Hansen e0ae997501 tests: Don't auto-scroll Mocha results if user scrolls up 2021-06-09 18:48:31 -04:00
Richard Hansen f5046f4b18 tests: Keep the `#mocha-stats` div visible 2021-06-09 18:48:31 -04:00
Richard Hansen 63a5dc6599 tests: Configure Firefox to use fake webcam
This makes it possible to test ep_webrtc in Firefox.
2021-06-06 16:53:51 -04:00
Richard Hansen 8f0d70312d tests: Also pass `--use-fake-ui-for-media-stream` to Chrome
For testing ep_webrtc.
2021-06-06 16:25:27 -04:00
Richard Hansen 752e2488af tests: Migrate from `wd` to `selenium-webdriver` 2021-06-06 16:23:56 -04:00
Richard Hansen 1756415495 tests: Avoid jQuery when reading Mocha output 2021-06-06 16:20:13 -04:00
Richard Hansen 6c2f31a5cb tests: Add tests for `settings.json` parsing 2021-06-06 14:00:52 -04:00
Richard Hansen 45ca82fd9f tests: Make the Mocha results area resizable 2021-06-05 03:51:55 -04:00
Richard Hansen c4239b6059 tests: Show a scrollbar if the pad is too wide 2021-06-05 03:51:11 -04:00
Richard Hansen fc3b811726 tests: Move iframe min width to iframe selector 2021-06-05 03:51:11 -04:00
Richard Hansen 960c2c0c0d tests: Tweak mocha report spacing 2021-06-05 03:51:11 -04:00
Richard Hansen b09b895ac7 tests: Remove border around iframe 2021-06-05 03:51:11 -04:00
Richard Hansen e9f08bdd11 tests: Fix frontend test CSS selectors 2021-06-05 03:51:11 -04:00
Richard Hansen 76634eb6ff tests: Add missing `<head>` and `<body>` tags 2021-06-05 03:51:11 -04:00
Richard Hansen d9782ac628 tests: Send frontend test spec list as JSON 2021-06-05 03:51:06 -04:00
Richard Hansen 20df34bb67 tests: Promisify `helper.init()` 2021-06-05 03:50:36 -04:00