[INFO] cloning repository https://github.com/matrix-org/matrix-rich-text-editor [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/matrix-org/matrix-rich-text-editor" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatrix-org%2Fmatrix-rich-text-editor", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatrix-org%2Fmatrix-rich-text-editor'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cb62b25558d3906faf4c8942813e9000154d358e [INFO] testing matrix-org/matrix-rich-text-editor against master#b03b3a7ec92682be2917540b679478d41c95a30c for pr-137122-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatrix-org%2Fmatrix-rich-text-editor" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-3-tc1/source/.cargo/config.toml [INFO] removed /workspace/builds/worker-3-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/matrix-org/matrix-rich-text-editor [INFO] finished tweaking git repo https://github.com/matrix-org/matrix-rich-text-editor [INFO] tweaked toml for git repo https://github.com/matrix-org/matrix-rich-text-editor written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/matrix-org/matrix-rich-text-editor on toolchain b03b3a7ec92682be2917540b679478d41c95a30c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/matrix-org/matrix-rich-text-editor already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating git repository `https://github.com/mozilla/uniffi-rs` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded clap v4.1.14 [INFO] [stderr] Downloaded as_variant v1.2.0 [INFO] [stderr] Downloaded speculoos v0.11.0 [INFO] [stderr] Downloaded ruma-macros v0.13.0 [INFO] [stderr] Downloaded askama v0.12.0 [INFO] [stderr] Downloaded clap_derive v4.1.14 [INFO] [stderr] Downloaded ruma-common v0.13.0 [INFO] [stderr] Downloaded askama_derive v0.12.1 [INFO] [stderr] Downloaded ruma-identifiers-validation v0.9.5 [INFO] [stderr] Downloaded serde_html_form v0.2.0 [INFO] [stderr] Downloaded clap_builder v4.1.14 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1c73a283605193c715eb89c20c857ed370e7e25bf5e220b76d09c3bb89c2a938 [INFO] running `Command { std: "docker" "start" "-a" "1c73a283605193c715eb89c20c857ed370e7e25bf5e220b76d09c3bb89c2a938", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1c73a283605193c715eb89c20c857ed370e7e25bf5e220b76d09c3bb89c2a938", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1c73a283605193c715eb89c20c857ed370e7e25bf5e220b76d09c3bb89c2a938", kill_on_drop: false }` [INFO] [stdout] 1c73a283605193c715eb89c20c857ed370e7e25bf5e220b76d09c3bb89c2a938 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e4cf11981d117a0b94fb9c8f30c9902aedea5be8d4d26ce5d3d6345e97582423 [INFO] running `Command { std: "docker" "start" "-a" "e4cf11981d117a0b94fb9c8f30c9902aedea5be8d4d26ce5d3d6345e97582423", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling unicode-ident v1.0.5 [INFO] [stderr] Compiling serde v1.0.193 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling libc v0.2.137 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling siphasher v0.3.10 [INFO] [stderr] Compiling ppv-lite86 v0.2.16 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling phf_shared v0.10.0 [INFO] [stderr] Compiling thiserror v1.0.40 [INFO] [stderr] Compiling lock_api v0.4.9 [INFO] [stderr] Compiling phf_shared v0.11.2 [INFO] [stderr] Compiling parking_lot_core v0.9.4 [INFO] [stderr] Compiling memchr v2.6.3 [INFO] [stderr] Compiling tinyvec_macros v0.1.0 [INFO] [stderr] Compiling indexmap v2.2.6 [INFO] [stderr] Compiling tinyvec v1.6.0 [INFO] [stderr] Compiling indexmap v1.9.1 [INFO] [stderr] Compiling smallvec v1.10.0 [INFO] [stderr] Compiling winnow v0.5.40 [INFO] [stderr] Compiling new_debug_unreachable v1.0.4 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Compiling quote v1.0.31 [INFO] [stderr] Compiling getrandom v0.2.8 [INFO] [stderr] Compiling winnow v0.6.13 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling syn v2.0.32 [INFO] [stderr] Compiling aho-corasick v1.0.1 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling unicode-normalization v0.1.22 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling ryu v1.0.11 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling itoa v1.0.4 [INFO] [stderr] Compiling js_int v0.2.2 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling unicode-bidi v0.3.15 [INFO] [stderr] Compiling serde_json v1.0.87 [INFO] [stderr] Compiling phf_generator v0.11.2 [INFO] [stderr] Compiling phf_generator v0.10.0 [INFO] [stderr] Compiling string_cache_codegen v0.5.2 [INFO] [stderr] Compiling phf_codegen v0.11.2 [INFO] [stderr] Compiling mac v0.1.1 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling markup5ever v0.12.1 [INFO] [stderr] Compiling futf v0.1.5 [INFO] [stderr] Compiling idna v0.5.0 [INFO] [stderr] Compiling unicase v2.6.0 [INFO] [stderr] Compiling deranged v0.3.11 [INFO] [stderr] Compiling parking_lot v0.12.1 [INFO] [stderr] Compiling tracing-core v0.1.31 [INFO] [stderr] Compiling rustversion v1.0.9 [INFO] [stderr] Compiling precomputed-hash v0.1.1 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling pin-project-lite v0.2.9 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling ruma-common v0.13.0 [INFO] [stderr] Compiling tendril v0.4.3 [INFO] [stderr] Compiling phf v0.11.2 [INFO] [stderr] Compiling url v2.5.2 [INFO] [stderr] Compiling time v0.3.36 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling pulldown-cmark v0.11.0 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling web-time v1.1.0 [INFO] [stderr] Compiling bytes v1.4.0 [INFO] [stderr] Compiling as_variant v1.2.0 [INFO] [stderr] Compiling wildmatch v2.1.1 [INFO] [stderr] Compiling utf8-width v0.1.6 [INFO] [stderr] Compiling bitflags v2.6.0 [INFO] [stderr] Compiling pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling html-escape v0.2.13 [INFO] [stderr] Compiling indoc v2.0.5 [INFO] [stderr] Compiling unicode-segmentation v1.11.0 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling widestring v1.1.0 [INFO] [stderr] Compiling serde_derive v1.0.193 [INFO] [stderr] Compiling thiserror-impl v1.0.40 [INFO] [stderr] Compiling tracing-attributes v0.1.24 [INFO] [stderr] Compiling html5ever v0.27.0 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling regex v1.10.5 [INFO] [stderr] Compiling ruma-identifiers-validation v0.9.5 [INFO] [stderr] Compiling tracing v0.1.37 [INFO] [stderr] Compiling toml_datetime v0.6.6 [INFO] [stderr] Compiling serde_spanned v0.6.6 [INFO] [stderr] Compiling serde_html_form v0.2.0 [INFO] [stderr] Compiling string_cache v0.8.4 [INFO] [stderr] Compiling email_address v0.2.5 [INFO] [stderr] Compiling toml_edit v0.21.1 [INFO] [stderr] Compiling toml_edit v0.22.14 [INFO] [stderr] Compiling proc-macro-crate v3.1.0 [INFO] [stderr] Compiling toml v0.8.14 [INFO] [stderr] Compiling ruma-macros v0.13.0 [INFO] [stderr] Compiling matrix_mentions v0.1.0 (/opt/rustwide/workdir/crates/matrix_mentions) [INFO] [stderr] Compiling wysiwyg v2.37.9 (/opt/rustwide/workdir/crates/wysiwyg) [INFO] [stdout] warning: method `char_at` is never used [INFO] [stdout] --> crates/wysiwyg/src/dom/unicode_string.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub trait UnicodeStr: [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 74 | fn char_at(&self, idx: usize) -> char; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn iter(&self) -> DomIterator { [INFO] [stdout] | ^^^^^ -------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 35 | pub fn iter(&self) -> DomIterator<'_, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:59:27 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn iter_from<'a>(&'a self, node: &'a DomNode) -> DomNodeIterator { [INFO] [stdout] | ^^ ^^ ------------------ the lifetime gets resolved as `'a` [INFO] [stdout] | | | [INFO] [stdout] | | these lifetimes flow to the output [INFO] [stdout] | these lifetimes flow to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 59 | pub fn iter_from<'a>(&'a self, node: &'a DomNode) -> DomNodeIterator<'a, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:65:29 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn iter_from_handle(&self, handle: &DomHandle) -> DomNodeIterator { [INFO] [stdout] | ^^^^^ ------------------ the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 65 | pub fn iter_from_handle(&self, handle: &DomHandle) -> DomNodeIterator<'_, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:72:10 [INFO] [stdout] | [INFO] [stdout] 72 | &'a self, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 73 | handle: &'a DomHandle, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 74 | ) -> DomHandleIterator { [INFO] [stdout] | -------------------- the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 74 | ) -> DomHandleIterator<'a, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:81:10 [INFO] [stdout] | [INFO] [stdout] 81 | &'a self, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 82 | node: &'a DomNode, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 83 | ) -> impl Iterator> { [INFO] [stdout] | ------------ the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 83 | ) -> impl Iterator> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:147:25 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn iter_subtree(&self) -> DomIterator { [INFO] [stdout] | ^^^^^ -------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 147 | pub fn iter_subtree(&self) -> DomIterator<'_, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 29s [INFO] running `Command { std: "docker" "inspect" "e4cf11981d117a0b94fb9c8f30c9902aedea5be8d4d26ce5d3d6345e97582423", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e4cf11981d117a0b94fb9c8f30c9902aedea5be8d4d26ce5d3d6345e97582423", kill_on_drop: false }` [INFO] [stdout] e4cf11981d117a0b94fb9c8f30c9902aedea5be8d4d26ce5d3d6345e97582423 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e0876a19d524091d2f8981c4db89b0d99ddd259eb9048976c9e1f1ab83278877 [INFO] running `Command { std: "docker" "start" "-a" "e0876a19d524091d2f8981c4db89b0d99ddd259eb9048976c9e1f1ab83278877", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.18 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling num-bigint v0.4.4 [INFO] [stderr] Compiling num-rational v0.4.1 [INFO] [stderr] Compiling num-iter v0.1.43 [INFO] [stderr] Compiling matrix_mentions v0.1.0 (/opt/rustwide/workdir/crates/matrix_mentions) [INFO] [stdout] warning: method `char_at` is never used [INFO] [stdout] --> crates/wysiwyg/src/dom/unicode_string.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub trait UnicodeStr: [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 74 | fn char_at(&self, idx: usize) -> char; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn iter(&self) -> DomIterator { [INFO] [stdout] | ^^^^^ -------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 35 | pub fn iter(&self) -> DomIterator<'_, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:59:27 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn iter_from<'a>(&'a self, node: &'a DomNode) -> DomNodeIterator { [INFO] [stdout] | ^^ ^^ ------------------ the lifetime gets resolved as `'a` [INFO] [stdout] | | | [INFO] [stdout] | | these lifetimes flow to the output [INFO] [stdout] | these lifetimes flow to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 59 | pub fn iter_from<'a>(&'a self, node: &'a DomNode) -> DomNodeIterator<'a, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:65:29 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn iter_from_handle(&self, handle: &DomHandle) -> DomNodeIterator { [INFO] [stdout] | ^^^^^ ------------------ the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 65 | pub fn iter_from_handle(&self, handle: &DomHandle) -> DomNodeIterator<'_, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:72:10 [INFO] [stdout] | [INFO] [stdout] 72 | &'a self, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 73 | handle: &'a DomHandle, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 74 | ) -> DomHandleIterator { [INFO] [stdout] | -------------------- the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 74 | ) -> DomHandleIterator<'a, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:81:10 [INFO] [stdout] | [INFO] [stdout] 81 | &'a self, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 82 | node: &'a DomNode, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 83 | ) -> impl Iterator> { [INFO] [stdout] | ------------ the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 83 | ) -> impl Iterator> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:147:25 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn iter_subtree(&self) -> DomIterator { [INFO] [stdout] | ^^^^^ -------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 147 | pub fn iter_subtree(&self) -> DomIterator<'_, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling num-complex v0.4.5 [INFO] [stderr] Compiling num v0.4.1 [INFO] [stderr] Compiling speculoos v0.11.0 [INFO] [stderr] Compiling wysiwyg v2.37.9 (/opt/rustwide/workdir/crates/wysiwyg) [INFO] [stdout] warning: method `char_at` is never used [INFO] [stdout] --> crates/wysiwyg/src/dom/unicode_string.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub trait UnicodeStr: [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 74 | fn char_at(&self, idx: usize) -> char; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn iter(&self) -> DomIterator { [INFO] [stdout] | ^^^^^ -------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 35 | pub fn iter(&self) -> DomIterator<'_, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:59:27 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn iter_from<'a>(&'a self, node: &'a DomNode) -> DomNodeIterator { [INFO] [stdout] | ^^ ^^ ------------------ the lifetime gets resolved as `'a` [INFO] [stdout] | | | [INFO] [stdout] | | these lifetimes flow to the output [INFO] [stdout] | these lifetimes flow to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 59 | pub fn iter_from<'a>(&'a self, node: &'a DomNode) -> DomNodeIterator<'a, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:65:29 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn iter_from_handle(&self, handle: &DomHandle) -> DomNodeIterator { [INFO] [stdout] | ^^^^^ ------------------ the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 65 | pub fn iter_from_handle(&self, handle: &DomHandle) -> DomNodeIterator<'_, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:72:10 [INFO] [stdout] | [INFO] [stdout] 72 | &'a self, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 73 | handle: &'a DomHandle, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 74 | ) -> DomHandleIterator { [INFO] [stdout] | -------------------- the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 74 | ) -> DomHandleIterator<'a, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:81:10 [INFO] [stdout] | [INFO] [stdout] 81 | &'a self, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 82 | node: &'a DomNode, [INFO] [stdout] | ^^ these lifetimes flow to the output [INFO] [stdout] 83 | ) -> impl Iterator> { [INFO] [stdout] | ------------ the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 83 | ) -> impl Iterator> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> crates/wysiwyg/src/dom/iter.rs:147:25 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn iter_subtree(&self) -> DomIterator { [INFO] [stdout] | ^^^^^ -------------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 147 | pub fn iter_subtree(&self) -> DomIterator<'_, S> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 20.03s [INFO] running `Command { std: "docker" "inspect" "e0876a19d524091d2f8981c4db89b0d99ddd259eb9048976c9e1f1ab83278877", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e0876a19d524091d2f8981c4db89b0d99ddd259eb9048976c9e1f1ab83278877", kill_on_drop: false }` [INFO] [stdout] e0876a19d524091d2f8981c4db89b0d99ddd259eb9048976c9e1f1ab83278877 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d5c89e0cf931a42c61fcf8bb22a369fd3cb611a77e91f405805285764bdc6a89 [INFO] running `Command { std: "docker" "start" "-a" "d5c89e0cf931a42c61fcf8bb22a369fd3cb611a77e91f405805285764bdc6a89", kill_on_drop: false }` [INFO] [stderr] warning: method `char_at` is never used [INFO] [stderr] --> crates/wysiwyg/src/dom/unicode_string.rs:74:8 [INFO] [stderr] | [INFO] [stderr] 54 | pub trait UnicodeStr: [INFO] [stderr] | ---------- method in this trait [INFO] [stderr] ... [INFO] [stderr] 74 | fn char_at(&self, idx: usize) -> char; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> crates/wysiwyg/src/dom/iter.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn iter(&self) -> DomIterator { [INFO] [stderr] | ^^^^^ -------------- the lifetime gets resolved as `'_` [INFO] [stderr] | | [INFO] [stderr] | this lifetime flows to the output [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 35 | pub fn iter(&self) -> DomIterator<'_, S> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> crates/wysiwyg/src/dom/iter.rs:59:27 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn iter_from<'a>(&'a self, node: &'a DomNode) -> DomNodeIterator { [INFO] [stderr] | ^^ ^^ ------------------ the lifetime gets resolved as `'a` [INFO] [stderr] | | | [INFO] [stderr] | | these lifetimes flow to the output [INFO] [stderr] | these lifetimes flow to the output [INFO] [stderr] | [INFO] [stderr] help: one option is to consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 59 | pub fn iter_from<'a>(&'a self, node: &'a DomNode) -> DomNodeIterator<'a, S> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> crates/wysiwyg/src/dom/iter.rs:65:29 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn iter_from_handle(&self, handle: &DomHandle) -> DomNodeIterator { [INFO] [stderr] | ^^^^^ ------------------ the lifetime gets resolved as `'_` [INFO] [stderr] | | [INFO] [stderr] | this lifetime flows to the output [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 65 | pub fn iter_from_handle(&self, handle: &DomHandle) -> DomNodeIterator<'_, S> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> crates/wysiwyg/src/dom/iter.rs:72:10 [INFO] [stderr] | [INFO] [stderr] 72 | &'a self, [INFO] [stderr] | ^^ these lifetimes flow to the output [INFO] [stderr] 73 | handle: &'a DomHandle, [INFO] [stderr] | ^^ these lifetimes flow to the output [INFO] [stderr] 74 | ) -> DomHandleIterator { [INFO] [stderr] | -------------------- the lifetime gets resolved as `'a` [INFO] [stderr] | [INFO] [stderr] help: one option is to consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 74 | ) -> DomHandleIterator<'a, S> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> crates/wysiwyg/src/dom/iter.rs:81:10 [INFO] [stderr] | [INFO] [stderr] 81 | &'a self, [INFO] [stderr] | ^^ these lifetimes flow to the output [INFO] [stderr] 82 | node: &'a DomNode, [INFO] [stderr] | ^^ these lifetimes flow to the output [INFO] [stderr] 83 | ) -> impl Iterator> { [INFO] [stderr] | ------------ the lifetime gets resolved as `'a` [INFO] [stderr] | [INFO] [stderr] help: one option is to consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 83 | ) -> impl Iterator> { [INFO] [stderr] | ++ [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> crates/wysiwyg/src/dom/iter.rs:147:25 [INFO] [stderr] | [INFO] [stderr] 147 | pub fn iter_subtree(&self) -> DomIterator { [INFO] [stderr] | ^^^^^ -------------- the lifetime gets resolved as `'_` [INFO] [stderr] | | [INFO] [stderr] | this lifetime flows to the output [INFO] [stderr] | [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 147 | pub fn iter_subtree(&self) -> DomIterator<'_, S> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: `wysiwyg` (lib) generated 7 warnings [INFO] [stderr] warning: `wysiwyg` (lib test) generated 7 warnings (7 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/matrix_mentions-aa12138f77495a21) [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test mention::test::parse_link_user_text ... ok [INFO] [stdout] test mention::test::parse_link_room_alias_text ... ok [INFO] [stdout] test mention::test::parse_link_room_text ... ok [INFO] [stdout] test mention::test::parse_uri_external_permalink_room ... ok [INFO] [stdout] test mention::test::parse_link_event_text ... ok [INFO] [stdout] test mention::test::parse_uri_external_permalink_room_alias ... ok [INFO] [stdout] test mention::test::parse_uri_external_permalink_user ... ok [INFO] [stdout] test mention::test::parse_uri_external_room ... ok [INFO] [stdout] test mention::test::parse_uri_matrix_to_valid_event ... ok [INFO] [stdout] test mention::test::parse_uri_matrix_to_valid_room ... ok [INFO] [stdout] test mention::test::parse_uri_external_user ... ok [INFO] [stdout] test mention::test::parse_uri_matrix_to_invalid ... ok [INFO] [stdout] test mention::test::parse_uri_matrix_to_valid_room_alias ... ok [INFO] [stdout] test mention::test::parse_uri_matrix_uri_invalid ... ok [INFO] [stdout] test mention::test::parse_uri_matrix_uri_valid_event ... ok [INFO] [stdout] test mention::test::parse_uri_matrix_uri_valid_room ... ok [INFO] [stdout] test mention::test::parse_uri_matrix_uri_valid_room_alias ... ok [INFO] [stdout] test mention::test::parse_uri_matrix_uri_valid_user ... ok [INFO] [stdout] test mention::test::parse_uri_not_uri ... ok [INFO] [stdout] test mention::test::parse_uri_matrix_to_valid_user ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wysiwyg-347b3269d1fe3aea) [INFO] [stdout] [INFO] [stdout] running 1069 tests [INFO] [stdout] test composer_model::base::test::action_states_are_reported ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_empty_list_item ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_deep_nested_item_in_formatting_nodes ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_empty_dom ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_existing_code_block ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_existing_code_block_partially_selected ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_nested_item_in_formatting_node ... ok [INFO] [stdout] test composer_model::base::test::completely_replacing_html_works ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_quote ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_quote_text_after ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_list_item_with_line_breaks ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_quote_text_before ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_list_and_external_nodes ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_several_list_items ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_simple_text ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_list_item ... ok [INFO] [stdout] test composer_model::base::test::set_content_from_html_with_complex_html_has_proper_selection ... ok [INFO] [stdout] test composer_model::code_block::test::applying_code_block_to_some_middle_paragraph_does_not_move_it ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_several_nodes ... ok [INFO] [stdout] test composer_model::code_block::test::code_block_roundtrips ... ok [INFO] [stdout] test composer_model::code_block::test::creating_and_removing_code_block_works ... ok [INFO] [stdout] test composer_model::code_block::test::remove_code_block_moves_its_children_and_keeps_selection_in_place ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_several_nodes_in_single_paragraph ... ok [INFO] [stdout] test composer_model::code_block::test::remove_code_block_moves_its_children_and_restores_line_breaks ... ok [INFO] [stdout] test composer_model::code_block::test::add_code_block_to_several_lists ... ok [INFO] [stdout] test composer_model::code_block::test::applying_code_block_to_the_first_paragraph_does_not_move_it ... ok [INFO] [stdout] test composer_model::code_block::test::remove_code_block_moves_its_children_out ... ok [INFO] [stdout] test composer_model::code_block::test::applying_code_block_to_the_last_paragraph_does_not_move_it ... ok [INFO] [stdout] test composer_model::example_format::test::cm_creates_correct_component_model_tags ... ok [INFO] [stdout] test composer_model::code_block::test::test_creating_code_block_at_the_end_of_editor ... ok [INFO] [stdout] test composer_model::example_format::test::cm_creates_correct_model_selection_multi_code_units_and_tags ... ok [INFO] [stdout] test composer_model::example_format::test::cm_parses_selection_spanning_outwards_from_tag_forwards ... ok [INFO] [stdout] test composer_model::example_format::test::cm_parses_selection_spanning_outwards_from_tag_backwards ... ok [INFO] [stdout] test composer_model::example_format::test::cm_creates_correct_component_model_multi_code_unit_characters ... ok [INFO] [stdout] test composer_model::example_format::test::cm_creates_correct_model_selection_multi_code_units_selection ... ok [INFO] [stdout] test composer_model::example_format::test::selection_writing_with_one_character ... ok [INFO] [stdout] test composer_model::example_format::test::selection_across_lists_roundtrips ... ok [INFO] [stdout] test composer_model::example_format::test::tx_formats_empty_model ... ok [INFO] [stdout] test composer_model::example_format::test::selection_across_lists_with_whitespace_roundtrips ... ok [INFO] [stdout] test composer_model::format::test::completely_formatted_selection_triggers_unformat ... ok [INFO] [stdout] test composer_model::example_format::test::tx_formats_selection_spanning_outwards_from_tag_forwards ... ok [INFO] [stdout] test composer_model::example_format::test::tx_formats_selection_spanning_outwards_from_tag_backwards ... ok [INFO] [stdout] test composer_model::format::test::format_and_unformat_empty_selection ... ok [INFO] [stdout] test composer_model::example_format::test::selection_ending_at_end_of_list_item_roundtrips ... ok [INFO] [stdout] test composer_model::example_format::test::cm_creates_correct_component_model_plain ... ok [INFO] [stdout] test composer_model::format::test::formatting_several_nodes_works_with_different_format ... ok [INFO] [stdout] test composer_model::format::test::formatting_several_nodes_works_with_same_format ... ok [INFO] [stdout] test composer_model::format::test::formatting_several_nodes_works_with_plain_text_between ... ok [INFO] [stdout] test composer_model::format::test::formatting_several_nodes_works_with_same_format_rev ... ok [INFO] [stdout] test composer_model::format::test::selection_type_extend_if_different_type ... ok [INFO] [stdout] test composer_model::format::test::partially_formatted_selection_triggers_format ... ok [INFO] [stdout] test composer_model::format::test::selection_type_extending_end ... ok [INFO] [stdout] test composer_model::format::test::selection_type_remove_on_ending_edge ... ok [INFO] [stdout] test composer_model::format::test::selection_type_extending_start ... ok [INFO] [stdout] test composer_model::format::test::selection_type_remove ... ok [INFO] [stdout] test composer_model::format::test::selection_type_remove_on_start_edge ... ok [INFO] [stdout] test composer_model::format::test::selection_type_extending_middle ... ok [INFO] [stdout] test composer_model::format::test::unformat_across_list_items_removes_tag ... ok [INFO] [stdout] test composer_model::format_inline_code::test::disable_inline_code_then_write_text ... ok [INFO] [stdout] test composer_model::format::test::unformat_across_overlapping_nodes_removes_tag ... ok [INFO] [stdout] test composer_model::format::test::unformat_partial_node_creates_new_formatting_nodes ... ok [INFO] [stdout] test composer_model::format_inline_code::test::format_inline_code_in_list_item ... ok [INFO] [stdout] test composer_model::format_inline_code::test::format_inline_code_in_several_list_items ... ok [INFO] [stdout] test composer_model::format::test::unformat_on_edge_creates_new_formatting_node_on_single_side ... ok [INFO] [stdout] test composer_model::format_inline_code::test::format_inline_code_with_existing_inline_code_end ... ok [INFO] [stdout] test composer_model::format_inline_code::test::format_inline_code_with_existing_inline_code_side_to_side_end ... ok [INFO] [stdout] test composer_model::example_format::test::cm_creates_correct_component_model_selection_plain_text ... ok [INFO] [stdout] test composer_model::format_inline_code::test::format_inline_code_in_several_list_items_and_text ... ok [INFO] [stdout] test composer_model::format_inline_code::test::format_inline_code_with_existing_inline_code_side_to_side_start ... ok [INFO] [stdout] test composer_model::format_inline_code::test::inline_code_on_partial_nested_line_break_removes_formatting ... ok [INFO] [stdout] test composer_model::format_inline_code::test::inline_code_replacing_complex_formatting_removes_formatting ... ok [INFO] [stdout] test composer_model::format_inline_code::test::inline_code_on_partial_nested_line_break_within_parent_removes_formatting ... ok [INFO] [stdout] test composer_model::format_inline_code::test::inline_code_partially_replacing_formatting_removes_overlap ... ok [INFO] [stdout] test composer_model::format_inline_code::test::format_inline_code_with_existing_inline_code_start ... ok [INFO] [stdout] test composer_model::format_inline_code::test::inline_code_replacing_nested_and_complex_formatting_removes_formatting ... ok [INFO] [stdout] test composer_model::format_inline_code::test::inline_code_replacing_formatting_removes_formatting ... ok [INFO] [stdout] test composer_model::format_inline_code::test::inline_code_replacing_partial_formatting_removes_overlapping_formatting ... ok [INFO] [stdout] test composer_model::format_inline_code::test::test_creating_inline_code_inside_format_node ... ok [INFO] [stdout] test composer_model::format_inline_code::test::inline_code_with_formatting_preserves_line_breaks ... ok [INFO] [stdout] test composer_model::format_inline_code::test::test_inline_code_disables_current_formatting ... ok [INFO] [stdout] test composer_model::format_inline_code::test::unformat_inline_code_same_row_with_line_breaks ... ok [INFO] [stdout] test composer_model::lists::tests::can_indent_second_item ... ok [INFO] [stdout] test composer_model::format_inline_code::test::test_enabling_and_disabling_inline_code_then_adding_text ... ok [INFO] [stdout] test composer_model::lists::tests::can_indent_several_items_if_first_is_not_included ... ok [INFO] [stdout] test composer_model::format_inline_code::test::unformat_inline_code_in_several_list_items_and_text ... ok [INFO] [stdout] test composer_model::lists::tests::can_unindent_handle_simple_case_works ... ok [INFO] [stdout] test composer_model::lists::tests::cannot_indent_first_item ... ok [INFO] [stdout] test composer_model::lists::tests::can_unindent_with_only_one_list_level_fails ... ok [INFO] [stdout] test composer_model::lists::tests::can_unindent_simple_case_works ... ok [INFO] [stdout] test composer_model::lists::tests::unindent_handles_simple_case_works ... ok [INFO] [stdout] test composer_model::lists::tests::cannot_indent_several_items_if_first_is_included ... ok [INFO] [stdout] test composer_model::lists::tests::indent_list_item_works ... ok [INFO] [stdout] test composer_model::new_lines::test::add_line_at_start_of_empty_paragraph ... ok [INFO] [stdout] test composer_model::new_lines::test::adds_line_break_with_nested_block_nodes ... ok [INFO] [stdout] test composer_model::new_lines::test::repeated_line_breaks_in_quote_split_it ... ok [INFO] [stdout] test composer_model::new_lines::test::add_line_at_start_of_paragraph ... ok [INFO] [stdout] test composer_model::lists::tests::indent_list_item_to_previous_works ... ok [INFO] [stdout] test composer_model::new_lines::test::new_line_in_nested_empty_list_item_should_create_list_item_in_parent ... ok [INFO] [stdout] test composer_model::new_lines::test::test_enter_after_mention ... ok [INFO] [stdout] test composer_model::new_lines::test::test_enter_before_mention ... ok [INFO] [stdout] test composer_model::new_lines::test::selection_in_paragraphs_roundtrips_2 ... ok [INFO] [stdout] test composer_model::new_lines::test::test_new_line_after_emoji ... ok [INFO] [stdout] test composer_model::new_lines::test::adds_line_break_with_simple_paragraphs ... ok [INFO] [stdout] test composer_model::new_lines::test::selection_in_paragraphs_roundtrips ... ok [INFO] [stdout] test composer_model::new_lines::test::line_break_in_empty_paragraph_inside_quote_splits_quote ... ok [INFO] [stdout] test composer_model::new_lines::test::test_new_line_at_start ... ok [INFO] [stdout] test composer_model::new_lines::test::test_new_line_at_end ... ok [INFO] [stdout] test composer_model::new_lines::test::test_new_line_in_paragraph ... ok [INFO] [stdout] test composer_model::new_lines::test::test_new_line_in_formatted_text ... ok [INFO] [stdout] test composer_model::new_lines::test::test_new_line_in_empty_dom ... ok [INFO] [stdout] test composer_model::new_lines::test::write_text_in_empty_paragraph ... ok [INFO] [stdout] test composer_model::new_lines::test::test_new_line_in_plain_text ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_code_block ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_empty_dom ... ok [INFO] [stdout] test composer_model::quotes::test::add_quote_to_empty_list_item ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_nested_formatted_text ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_formatted_text ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_formatted_text_with_line_breaks ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_list ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_single_list_item ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_simple_text_with_paragraphs ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_simple_text ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_several_nodes_with_line_breaks ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_several_list_items_with_formatted_text_and_line_breaks ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_list_and_formatted_text ... ok [INFO] [stdout] test composer_model::quotes::test::create_and_remove_quote ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_single_list_item_with_formatted_text_and_line_breaks ... ok [INFO] [stdout] test composer_model::quotes::test::remove_quote_with_list ... ok [INFO] [stdout] test composer_model::quotes::test::remove_quote_with_nested_formatted_text ... ok [INFO] [stdout] test composer_model::quotes::test::remove_quote_with_simple_text ... ok [INFO] [stdout] test composer_model::quotes::test::apply_quote_to_text_and_formatted_text ... ok [INFO] [stdout] test composer_model::replace_text::test::composer_update_contains_escaped_html ... ok [INFO] [stdout] test composer_model::quotes::test::remove_quote_with_simple_text_with_adjacent_nodes ... ok [INFO] [stdout] test dom::action_list::test::actions_fn_returns_all_actions ... ok [INFO] [stdout] test dom::action_list::test::additions_returns_only_add_actions ... ok [INFO] [stdout] test dom::action_list::test::find_moved_parent_or_self_looks_for_it_in_move_actions ... ok [INFO] [stdout] test dom::action_list::test::new_can_create_empty_list_too ... ok [INFO] [stdout] test dom::action_list::test::default_creates_empty_action_list ... ok [INFO] [stdout] test dom::action_list::test::moves_returns_only_move_actions ... ok [INFO] [stdout] test dom::action_list::test::push_adds_new_action_at_the_end_of_the_list ... ok [INFO] [stdout] test dom::action_list::test::removals_returns_only_remove_actions ... ok [INFO] [stdout] test dom::action_list::test::new_creates_action_list_with_passed_actions ... ok [INFO] [stdout] test dom::action_list::test::replace_actions_replaces_all_actions_with_new_ones ... ok [INFO] [stdout] test composer_model::selection::test::safe_selection_leaves_forward_selection_untouched ... ok [INFO] [stdout] test composer_model::selection::test::safe_selection_reverses_backward_selection ... ok [INFO] [stdout] test dom::dom_block_nodes::test::find_ranges_to_wrap_list_and_external_nodes ... ok [INFO] [stdout] test dom::dom_block_nodes::test::find_ranges_to_wrap_list_item ... ok [INFO] [stdout] test dom::dom_block_nodes::test::find_ranges_to_wrap_several_list_items ... ok [INFO] [stdout] test dom::dom_block_nodes::test::find_ranges_to_wrap_several_nodes ... ok [INFO] [stdout] test dom::dom_block_nodes::test::find_ranges_to_wrap_several_nodes_with_line_break_at_start ... ok [INFO] [stdout] test dom::dom_block_nodes::test::find_ranges_to_wrap_list_item_with_line_breaks ... ok [INFO] [stdout] test composer_model::selection::test::safe_selection_fixes_too_wide_selection ... ok [INFO] [stdout] test dom::dom_block_nodes::test::find_ranges_to_wrap_simple_text ... ok [INFO] [stdout] test dom::dom_handle::test::computing_parent_handle ... ok [INFO] [stdout] test dom::dom_block_nodes::test::find_ranges_to_wrap_several_nodes_with_line_break_at_end ... ok [INFO] [stdout] test dom::dom_handle::test::computing_handle_depth ... ok [INFO] [stdout] test dom::dom_handle::test::creating_root_handle ... ok [INFO] [stdout] test dom::dom_handle::test::replacing_handle_ancestor ... ok [INFO] [stdout] test dom::dom_handle::test::computing_siblings_handle ... ok [INFO] [stdout] test dom::dom_handle::test::replacing_handle_ancestor_using_self ... ok [INFO] [stdout] test dom::dom_handle::test::sub_handle_up_to_depth ... ok [INFO] [stdout] test composer_model::example_format::test::cm_creates_correct_component_model_newlines ... ok [INFO] [stdout] test dom::dom_handle::test::with_ancestors_returns_all_ancestors_and_self ... ok [INFO] [stdout] test dom::dom_handle::test::computing_prev_sibling_of_first_child_panics - should panic ... ok [INFO] [stdout] test dom::dom_handle::test::computing_sibling_of_root_panics - should panic ... ok [INFO] [stdout] test dom::dom_handle::test::computing_unset_handle_depth_panics - should panic ... ok [INFO] [stdout] test dom::dom_handle::test::sub_handle_up_to_unreachable_depth_panics - should panic ... ok [INFO] [stdout] test dom::dom_handle::test::replacing_handle_ancestor_panics_if_not_using_ancestor - should panic ... ok [INFO] [stdout] test dom::dom_handle::test::lookup_parent_of_root_panics - should panic ... ok [INFO] [stdout] test dom::dom_invariants::test::nonadjacent_text_nodes_are_fine ... ok [INFO] [stdout] test dom::dom_invariants::test::should_not_panic_if_transaction_in_progress ... ok [INFO] [stdout] test dom::dom_invariants::test::double_text_node_fails_invariants - should panic ... ok [INFO] [stdout] test dom::dom_invariants::test::empty_text_node_fails_invariants - should panic ... ok [INFO] [stdout] test dom::dom_invariants::test::multiple_generic_containers_fails_invariants - should panic ... ok [INFO] [stdout] test dom::dom_list_methods::test::extract_last_list_item ... ok [INFO] [stdout] test dom::dom_list_methods::test::extract_last_list_items ... ok [INFO] [stdout] test dom::dom_list_methods::test::extract_entire_list ... ok [INFO] [stdout] test dom::dom_list_methods::test::extract_first_list_item ... ok [INFO] [stdout] test dom::dom_list_methods::test::extract_first_list_items ... ok [INFO] [stdout] test dom::dom_list_methods::test::extract_single_list_item ... ok [INFO] [stdout] test dom::dom_list_methods::test::slice_list_item ... ok [INFO] [stdout] test dom::dom_methods::test::delete_nodes_refuses_recursively_to_delete_root ... ok [INFO] [stdout] test dom::dom_list_methods::test::extract_middle_list_item ... ok [INFO] [stdout] test dom::dom_methods::test::delete_nodes_refuses_to_delete_root ... ok [INFO] [stdout] test dom::dom_list_methods::test::extract_middle_list_items ... ok [INFO] [stdout] test dom::dom_methods::test::split_dom_with_lists_at_sub_level ... ok [INFO] [stdout] test dom::dom_methods::test::delete_text_at_end_of_code_block_appends_next_content ... ok [INFO] [stdout] test dom::dom_methods::test::split_dom_simple ... ok [INFO] [stdout] test dom::dom_methods::test::split_dom_with_nested_formatting ... ok [INFO] [stdout] test dom::dom_methods::test::split_dom_with_emojis ... ok [INFO] [stdout] test dom::dom_methods::test::split_dom_with_lists ... ok [INFO] [stdout] test dom::dom_struct::test::can_create_a_dom_and_add_nodes ... ok [INFO] [stdout] test dom::dom_methods::test::split_dom_with_nested_formatting_at_sub_level ... ok [INFO] [stdout] test dom::dom_struct::test::can_find_toplevel_nodes_via_handles ... ok [INFO] [stdout] test dom::dom_struct::test::can_remove_node_and_keep_children ... ok [INFO] [stdout] test dom::dom_methods::test::split_dom_with_partial_handle ... ok [INFO] [stdout] test dom::dom_list_methods::test::wrap_consecutive_nodes_in_list ... ok [INFO] [stdout] test dom::dom_methods::test::split_new_sub_trees ... ok [INFO] [stdout] test dom::dom_struct::test::can_replace_deep_node_with_multiple_nodes ... ok [INFO] [stdout] test dom::dom_struct::test::can_replace_toplevel_node_with_multiple_nodes ... ok [INFO] [stdout] test dom::dom_struct::test::empty_dom_serialises_to_empty_string ... ok [INFO] [stdout] test dom::dom_struct::test::can_find_deep_nodes_via_handles ... ok [INFO] [stdout] test dom::dom_struct::test::empty_tag_serialises ... ok [INFO] [stdout] test dom::dom_methods::test::split_new_sub_trees_at_depth ... ok [INFO] [stdout] test dom::dom_list_methods::test::wrap_and_remove_lists ... ok [INFO] [stdout] test dom::dom_struct::test::find_parent_list_item_or_self_finds_ourself ... ok [INFO] [stdout] test dom::dom_struct::test::find_parent_list_item_or_self_finds_our_parent ... ok [INFO] [stdout] test dom::dom_struct::test::hyperlink_formatting_complex ... ok [INFO] [stdout] test dom::dom_struct::test::html_symbols_inside_text_tags_get_escaped ... ok [INFO] [stdout] test dom::dom_struct::test::find_range_by_node ... ok [INFO] [stdout] test dom::dom_struct::test::hyperlink_formatting_simple ... ok [INFO] [stdout] test dom::dom_struct::test::inline_code_gets_formatted ... ok [INFO] [stdout] test dom::dom_struct::test::inline_code_node_contents_do_not_get_escaped ... ok [INFO] [stdout] test dom::dom_struct::test::into_node_from_root ... ok [INFO] [stdout] test dom::dom_struct::test::nested_tags_serialise ... ok [INFO] [stdout] test dom::dom_struct::test::inline_code_text_contents_get_escaped ... ok [INFO] [stdout] test dom::dom_struct::test::into_node ... ok [INFO] [stdout] test dom::dom_struct::test::mixed_text_and_tags_serialises ... ok [INFO] [stdout] test dom::dom_struct::test::find_range_by_node_root ... ok [INFO] [stdout] test dom::dom_struct::test::plain_text_serialises_to_just_the_text ... ok [INFO] [stdout] test dom::dom_struct::test::find_parent_list_item_or_self_finds_our_grandparent ... ok [INFO] [stdout] test dom::dom_struct::test::node_exists_returns_true_if_exists ... ok [INFO] [stdout] test dom::dom_struct::test::text_node_with_immutable_ancestor ... ok [INFO] [stdout] test dom::dom_struct::test::node_exists_returns_false_if_child_does_not_exist ... ok [INFO] [stdout] test dom::dom_struct::test::node_exists_returns_false_if_sibling_does_not_exist ... ok [INFO] [stdout] test dom::dom_struct::test::text_len_counts_brs_as_1 ... ok [INFO] [stdout] test dom::dom_struct::test::transaction_end_asserts - should panic ... ok [INFO] [stdout] test dom::dom_struct::test::text_node_without_immutable_ancestor ... ok [INFO] [stdout] test dom::dom_struct::test::find_parent_list_item_or_self_returns_none_when_not_in_a_list ... ok [INFO] [stdout] test dom::dom_struct::test::transaction_end_without_start - should panic ... ok [INFO] [stdout] test dom::dom_struct::test::transaction_start_asserts - should panic ... ok [INFO] [stdout] test dom::dom_struct::test::transaction_succeeds ... ok [INFO] [stdout] test dom::dom_struct::test::transaction_start_twice - should panic ... ok [INFO] [stdout] test dom::dom_struct::test::text_len_ignores_html_tags ... ok [INFO] [stdout] test dom::find_extended_range::test::find_extended_selection_retrieves_single_text_node ... ok [INFO] [stdout] test dom::find_extended_range::test::find_extended_selection_stops_immediately_on_selected_linebreaks ... ok [INFO] [stdout] test dom::find_extended_range::test::find_extended_selection_stops_at_leading_trailing_line_breaks ... ok [INFO] [stdout] test composer_model::example_format::test::cm_and_tx_roundtrip ... ok [INFO] [stdout] test dom::find_extended_range::test::find_extended_selection_dont_stop_on_format_tags ... ok [INFO] [stdout] test dom::find_range::test::finding_a_boundary_between_flat_text_nodes_finds_both ... ok [INFO] [stdout] test dom::find_extended_range::test::find_extended_selection_stops_inside_list ... ok [INFO] [stdout] test dom::find_range::test::finding_a_node_within_a_single_text_node_is_found ... ok [INFO] [stdout] test dom::find_extended_range::test::find_extended_selection_on_list_border_stops ... ok [INFO] [stdout] test dom::find_range::test::finding_a_node_within_an_empty_dom_returns_only_root_location ... ok [INFO] [stdout] test dom::find_range::test::finding_a_node_within_a_single_text_node_with_emoji_is_found ... ok [INFO] [stdout] test dom::find_extended_range::test::test_is_last_child_of_list ... ok [INFO] [stdout] test dom::find_extended_range::test::find_extended_selection_from_last_list_item_stops_end_of_list ... ok [INFO] [stdout] test dom::find_range::test::finding_a_range_within_an_empty_dom_returns_no_nodes ... ok [INFO] [stdout] test dom::find_range::test::finding_a_range_that_includes_the_end_works_simple_case ... ok [INFO] [stdout] test dom::find_range::test::find_range_builds_dom_location_with_expected_length ... ok [INFO] [stdout] test dom::find_range::test::finding_a_range_within_some_nested_node_works ... ok [INFO] [stdout] test dom::find_extended_range::test::find_extended_selection_stops_at_paragraph ... ok [INFO] [stdout] test dom::find_range::test::finding_a_range_within_the_single_text_node_works ... ok [INFO] [stdout] test dom::find_range::test::finding_first_node_within_flat_text_nodes_is_found ... ok [INFO] [stdout] test dom::find_range::test::finding_second_node_within_flat_text_nodes_is_found ... ok [INFO] [stdout] test dom::insert_node_at_cursor::test::inserts_node_into_empty_paragraph ... ok [INFO] [stdout] test dom::insert_node_at_cursor::test::inserts_node_in_empty_model ... ok [INFO] [stdout] test dom::insert_node_at_cursor::test::inserts_node_into_leaf_end ... ok [INFO] [stdout] test dom::find_range::test::finding_a_range_across_several_nodes_works ... ok [INFO] [stdout] test dom::insert_node_at_cursor::test::inserts_node_into_leaf_middle ... ok [INFO] [stdout] test dom::insert_node_at_cursor::test::inserts_node_into_empty_container ... ok [INFO] [stdout] test dom::insert_node_at_cursor::test::inserts_node_into_leaf_start ... ok [INFO] [stdout] test dom::find_range::test::finding_a_range_inside_several_nested_nodes_returns_text_node ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_flat_part ... ok [INFO] [stdout] test dom::insert_node_at_cursor::test::panics_if_passed_selection - should panic ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_flat_end ... ok [INFO] [stdout] test dom::find_range::test::finding_a_range_across_several_nested_nodes_works ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_flat_start ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_flat_whole ... ok [INFO] [stdout] test dom::find_range::test::finding_a_range_spanning_nested_nodes_selects_text_node_and_parent ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_panics_if_new_is_not_container - should panic ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_ignores_shared_parent_nodes_with_siblings ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_simple ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_splits_single_partially_covered_node ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_container_nodes ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_splits_multiple_nested_partially_covered_nodes ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_ignores_shared_parent_nodes ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_splits_multiple_partially_covered_nodes ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_ignores_adjacent_nodes ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_a_deep_subtree ... ok [INFO] [stdout] test dom::insert_parent::test::insert_parent_includes_covered_shared_parent_nodes ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_the_tree_from_a_middle_leaf_node_reversed ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_a_middle_subtree ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_a_leading_subtree ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_the_tree_from_a_node ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_the_tree_from_first_child_reversed ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_the_tree_from_a_deep_leaf_node_reversed ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_a_trailing_subtree ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_the_tree_from_last_node_in_dom ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_the_tree_from_a_leaf_node ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_the_tree_from_a_node_reversed ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_the_tree_from_last_node_in_dom_reversed ... ok [INFO] [stdout] test dom::nodes::container_node::test::adding_a_child_sets_the_correct_handle ... ok [INFO] [stdout] test dom::nodes::container_node::test::inserting_children_updates_the_relevant_handles ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_text_nodes_of_a_leading_subtree ... ok [INFO] [stdout] test dom::nodes::container_node::test::paragraph_to_html ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_the_tree_from_root_reversed ... ok [INFO] [stdout] test dom::nodes::container_node::test::pushing_container_of_different_kind_panics - should panic ... ok [INFO] [stdout] test dom::nodes::container_node::test::pushing_container_of_same_kind ... ok [INFO] [stdout] test dom::nodes::container_node::test::removing_a_child_sets_the_correct_handles_after ... ok [INFO] [stdout] test dom::nodes::container_node::test::replacing_child_updates_the_relevant_handles ... ok [INFO] [stdout] test dom::nodes::container_node::test::slicing_after_edge_panics - should panic ... ok [INFO] [stdout] test dom::nodes::container_node::test::slicing_container_after ... ok [INFO] [stdout] test dom::nodes::container_node::test::slicing_container_before ... ok [INFO] [stdout] test dom::nodes::container_node::test::slicing_container_on_edge_does_nothing ... ok [INFO] [stdout] test dom::nodes::dom_node::test::pushing_list_item_directly_is_not_allowed ... ok [INFO] [stdout] test dom::nodes::dom_node::test::pushing_nodes_of_different_kind_is_not_allowed ... ok [INFO] [stdout] test dom::nodes::dom_node::test::pushing_nodes_of_same_kind ... ok [INFO] [stdout] test dom::nodes::dom_node::test::slicing_node ... ok [INFO] [stdout] test dom::nodes::dom_node::test::slicing_node_on_edge_removes_nothing ... ok [INFO] [stdout] test dom::nodes::dom_node::test::pushing_nodes_of_different_kind_panics - should panic ... ok [INFO] [stdout] test dom::nodes::text_node::test::get_char_type_for_other ... ok [INFO] [stdout] test dom::nodes::dom_node::test::slicing_over_edge_panics - should panic ... ok [INFO] [stdout] test dom::nodes::text_node::test::get_char_type_for_punctuation ... ok [INFO] [stdout] test dom::nodes::text_node::test::get_char_type_for_whitespace ... ok [INFO] [stdout] test dom::nodes::text_node::test::offset_is_inside_node_end_of_node ... ok [INFO] [stdout] test dom::nodes::text_node::test::offset_is_inside_node_start_of_node ... ok [INFO] [stdout] test dom::nodes::text_node::test::pushing_empty_text_node_does_nothing ... ok [INFO] [stdout] test dom::nodes::text_node::test::pushing_text_node ... ok [INFO] [stdout] test dom::nodes::text_node::test::slicing_after_edge_panics - should panic ... ok [INFO] [stdout] test dom::nodes::text_node::test::slicing_text_node ... ok [INFO] [stdout] test dom::nodes::text_node::test::offset_is_inside_node_middle_of_node ... ok [INFO] [stdout] test dom::parser::padom_creator::test::parsing_a_tag_creates_a_tag ... ok [INFO] [stdout] test dom::nodes::text_node::test::slicing_text_node_on_edge_does_nothing ... ok [INFO] [stdout] test dom::parser::padom_creator::test::parsing_a_text_snippet_creates_one_node ... ok [INFO] [stdout] test dom::parser::padom_creator::test::parsing_nested_structures_produces_them ... ok [INFO] [stdout] test dom::parser::padom_creator::test::parsing_tags_with_attributes_preserves_them ... ok [INFO] [stdout] test dom::parser::padom_creator::test::parsing_text_node_with_escaped_html_entities ... ok [INFO] [stdout] test dom::parser::padom_creator::test::parsing_two_tags_creates_two_tags ... ok [INFO] [stdout] test dom::parser::padom_creator::test::parsing_an_empty_string_creates_an_empty_dom ... ok [INFO] [stdout] test dom::parser::parse::sys::test::nbsp_chars_are_removed ... ok [INFO] [stdout] test dom::parser::parse::sys::test::nbsp_text_is_removed ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_at_room_mentions ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_text_nodes ... ok [INFO] [stdout] test dom::nodes::container_node::test::paragraph_to_message_html ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_br_tag ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_text_nodes_of_a_deep_subtree ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_code_block_post_processes_it ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_code_block_keeps_internal_code_tag ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_br_end ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_text_nodes_of_a_trailing_subtree ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_br_in_bold ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_text_nodes_of_a_middle_subtree ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_br_in_code ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_code_block_roundtrips ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_br_start ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_br_before_p ... ok [INFO] [stdout] test dom::iter::test::can_walk_all_nodes_of_the_tree_from_root ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_br_in_list ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_br_before_inline_format ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_br_in_quote ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_none ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_mentions ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_br_in_p ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_plain_text ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_nbsp_after_container_keeps_it ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_in_nested_p_in_blockquote ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_simple_tag ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_tags_with_attributes ... ok [INFO] [stdout] test dom::range::test::cursor_is_inside_all_nodes ... ok [INFO] [stdout] test dom::range::test::location_method_returns_false_for_end_of_non_list_item ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_quote ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_quote_2 ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_line_breaks_in_nested_blocks ... ok [INFO] [stdout] test dom::range::test::location_method_returns_false_for_inside_list_item ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_paragraph ... ok [INFO] [stdout] test dom::range::test::location_method_returns_true_for_end_of_list_item ... ok [INFO] [stdout] test dom::range::test::partially_contained_node_is_inside_of_range ... ok [INFO] [stdout] test dom::range::test::range_leaves_contains_text_node ... ok [INFO] [stdout] test dom::range::test::range_find_location ... ok [INFO] [stdout] test dom::range::test::node_on_border_is_before_or_after_cursor ... ok [INFO] [stdout] test dom::range::test::range_end_on_leading_of_a_node ... ok [INFO] [stdout] test dom::range::test::range_shared_parent_deep_flat ... ok [INFO] [stdout] test dom::range::test::range_shared_parent_deep_flat_outside ... ok [INFO] [stdout] test dom::range::test::range_find_location_none ... ok [INFO] [stdout] test dom::range::test::range_shared_parent_flat ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_tag_with_surrounding_text ... ok [INFO] [stdout] test dom::range::test::range_start_and_end_for_cursor_in_middle_of_plain_text ... ok [INFO] [stdout] test dom::range::test::range_shared_parent_flat_outside ... ok [INFO] [stdout] test dom::range::test::range_shared_parent ... ok [INFO] [stdout] test dom::parser::parse::sys::test::parse_nested_tags ... ok [INFO] [stdout] test dom::range::test::range_start_and_end_for_cursor_at_beginning ... ok [INFO] [stdout] test dom::range::test::range_start_and_end_for_selection_at_beginning ... ok [INFO] [stdout] test dom::range::test::range_start_and_end_for_selection_in_middle_of_plain_text ... ok [INFO] [stdout] test dom::range::test::range_shared_parent_outside ... ok [INFO] [stdout] test dom::range::test::range_start_and_end_for_cursor_after_brs ... ok [INFO] [stdout] test dom::range::test::range_leaves_contains_all_text_nodes ... ok [INFO] [stdout] test dom::range::test::range_top_level_single_node_with_multiple_nodes ... ok [INFO] [stdout] test dom::range::test::range_start_and_end_for_selection_containing_brs_in_tags ... ok [INFO] [stdout] test dom::unicode_string::test::test_emoji_complex_utf8 ... ok [INFO] [stdout] test dom::range::test::selection_is_inside_all_nodes ... ok [INFO] [stdout] test dom::unicode_string::test::test_emoji_complex_with_text_utf8 ... ok [INFO] [stdout] test dom::range::test::range_start_and_end_for_end_of_complex_tags ... ok [INFO] [stdout] test dom::unicode_string::test::test_emoji_complex_with_text_utf16 ... ok [INFO] [stdout] test dom::unicode_string::test::test_index_inside_char_with_emoji_utf8 ... ok [INFO] [stdout] test dom::unicode_string::test::test_index_inside_char_with_emoji_utf16 ... ok [INFO] [stdout] test dom::unicode_string::test::test_emoji_utf8 ... ok [INFO] [stdout] test dom::range::test::range_top_level_single_node ... ok [INFO] [stdout] test dom::range::test::range_start_and_end_for_end_of_text ... ok [INFO] [stdout] test dom::unicode_string::test::test_whitespace_after_postion_utf32 ... ok [INFO] [stdout] test dom::range::test::range_start_and_end_for_selection_in_nested_tags ... ok [INFO] [stdout] test dom::unicode_string::test::test_whitespace_after_postion_utf8 ... ok [INFO] [stdout] test dom::unicode_string::test::test_emoji_complex_with_text_utf32 ... ok [INFO] [stdout] test dom::unicode_string::test::test_indexes_out_of_range_with_emoji_utf16 - should panic ... ok [INFO] [stdout] test dom::unicode_string::test::test_indexes_out_of_range_with_emoji_utf32 - should panic ... ok [INFO] [stdout] test dom::unicode_string::test::test_indexes_out_of_range_with_emoji_utf8 - should panic ... ok [INFO] [stdout] test dom::unicode_string::test::test_whitespace_after_postion_utf16 ... ok [INFO] [stdout] test dom::unicode_string::test::test_whitespace_before_postion_utf32 ... ok [INFO] [stdout] test dom::unicode_string::test::test_whitespace_before_postion_utf8 ... ok [INFO] [stdout] test dom::range::test::range_start_and_end_for_cursor_in_nested_tags ... ok [INFO] [stdout] test tests::test_characters::can_replace_text_in_an_empty_composer_model ... ok [INFO] [stdout] test dom::unicode_string::test::test_whitespace_before_postion_utf16 ... ok [INFO] [stdout] test tests::test_characters::leading_whitespace_is_replaced_with_nbsp ... ok [INFO] [stdout] test tests::test_characters::leading_and_trailing_whitespace_are_both_replaced_with_nbsp ... ok [INFO] [stdout] test tests::test_characters::multiple_spaces_translates_into_non_breakable_whitespaces ... ok [INFO] [stdout] test tests::test_characters::multiple_leading_and_trailing_whitespace_are_all_replaced_with_nbsp ... ok [INFO] [stdout] test tests::test_characters::multiple_spaces_between_text ... ok [INFO] [stdout] test tests::test_characters::multiple_trailing_whitespaces_are_replaced_with_nbsp ... ok [INFO] [stdout] test tests::test_characters::inserting_a_line_break_and_text_before_a_line_break_works ... ok [INFO] [stdout] test tests::test_characters::newline_characters_insert_br_tags ... ok [INFO] [stdout] test tests::test_characters::insert_text_between_line_breaks ... ok [INFO] [stdout] test tests::test_characters::leading_and_trailing_newline_characters_insert_br_tags ... ok [INFO] [stdout] test tests::test_characters::multiple_leading_whitespaces_are_replaced_with_nbsp ... ok [INFO] [stdout] test tests::test_characters::replacing_a_selection_with_a_character ... ok [INFO] [stdout] test tests::test_characters::replacing_a_backwards_selection_with_a_character ... ok [INFO] [stdout] test tests::test_characters::replacing_a_selection_past_the_end_is_harmless ... ok [INFO] [stdout] test tests::test_characters::replacing_a_selection_ending_br_with_a_character ... ok [INFO] [stdout] test tests::test_characters::replacing_a_selection_containing_br_with_a_character ... ok [INFO] [stdout] test tests::test_characters::replacing_a_selection_starting_br_with_a_character ... ok [INFO] [stdout] test tests::test_characters::insert_text_between_line_breaks_in_format_node ... ok [INFO] [stdout] test tests::test_characters::replacing_an_explicit_text_range_works ... ok [INFO] [stdout] test tests::test_characters::replacing_text_with_empty_paragraphs_removes_nbsps_from_them ... ok [INFO] [stdout] test tests::test_characters::replacing_across_lists_joins_them ... ok [INFO] [stdout] test tests::test_characters::replacing_an_explicit_range_when_spanning_two_tags_extends_the_first_tag ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_at_the_end_appends_it ... ok [INFO] [stdout] test tests::test_characters::replacing_across_list_items_deletes_intervening_ones ... ok [INFO] [stdout] test tests::test_characters::replacing_within_a_list_replaces_characters ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_in_the_middle_inserts_it ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_after_a_multi_codepoint_character ... ok [INFO] [stdout] test tests::test_characters::trailing_whitespace_is_replaced_with_nbsp ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_into_an_empty_box_appends_it ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_inside_a_tag_inserts_it ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_when_spanning_two_separate_identical_tags_joins_them ... ok [INFO] [stdout] test tests::test_characters::typing_into_a_list_item_adds_characters ... ok [INFO] [stdout] test tests::test_characters::typing_html_does_not_break_anything ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_when_spanning_two_tags_extends_the_first_tag ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_when_spanning_two_whole_tags_extends_the_first_tag ... ok [INFO] [stdout] test tests::test_characters::typing_that_empties_an_end_tag_deletes_it ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_when_spanning_over_newly_opened_tags_deletes_them ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_can_join_the_parents_and_grandparents ... ok [INFO] [stdout] test tests::test_deleting::backspace_between_block_nodes ... ok [INFO] [stdout] test tests::test_characters::typing_a_character_when_spanning_entire_tag_keeps_formatting ... ok [INFO] [stdout] test tests::test_deleting::backspace_mention_from_end ... ok [INFO] [stdout] test tests::test_deleting::backspace_immutable_link_from_inside_link ... ok [INFO] [stdout] test tests::test_characters::typing_when_spanning_whole_open_tags_moves_their_start_forwards ... ok [INFO] [stdout] test tests::test_characters::typing_when_spanning_multiple_close_tags_extends_the_first_tag ... ok [INFO] [stdout] test tests::test_deleting::backspace_between_nested_block_nodes ... ok [INFO] [stdout] test tests::test_deleting::backspace_mention_multiple ... ok [INFO] [stdout] test tests::test_deleting::backspace_word_returns_replace_all_update ... ok [INFO] [stdout] test tests::test_deleting::backspace_immutable_link_multiple ... ok [INFO] [stdout] test tests::test_deleting::backspace_word_from_edge_of_immutable_link ... ok [INFO] [stdout] test tests::test_characters::typing_when_spanning_open_tags_moves_their_start_forwards ... ok [INFO] [stdout] test tests::test_deleting::backspace_immutable_link_from_edge_of_link ... ok [INFO] [stdout] test tests::test_deleting::backspacing_a_character_at_the_beginning_does_nothing ... ok [INFO] [stdout] test tests::test_deleting::backspacing_a_character_at_the_end_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::backspacing_a_character_in_the_middle_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::backspacing_a_line_break_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::backspacing_a_backwards_selection_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::backspacing_a_lone_line_break_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::backspacing_paragraphs_with_nbsp_at_start ... ok [INFO] [stdout] test tests::test_deleting::delete_immutable_link_from_edge_of_link ... ok [INFO] [stdout] test tests::test_deleting::delete_mention_from_start ... ok [INFO] [stdout] test tests::test_deleting::delete_immutable_link_from_inside_link ... ok [INFO] [stdout] test tests::test_deleting::backspacing_a_selection_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::delete_first_mention_of_multiple ... ok [INFO] [stdout] test tests::test_deleting::deleting_a_character_at_the_end_does_nothing ... ok [INFO] [stdout] test tests::test_deleting::delete_first_immutable_link_of_multiple ... ok [INFO] [stdout] test tests::test_deleting::delete_word_from_edge_of_link ... ok [INFO] [stdout] test tests::test_deleting::delete_second_mention_of_multiple ... ok [INFO] [stdout] test tests::test_deleting::deleting_a_backwards_selection_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::delete_second_immutable_link_of_multiple ... ok [INFO] [stdout] test tests::test_deleting::deleting_a_range_removes_it ... ok [INFO] [stdout] test tests::test_deleting::deleting_a_character_in_the_middle_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::deleting_a_selection_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::backspacing_several_paragraphs_with_only_nbsps ... ok [INFO] [stdout] test tests::test_deleting::deleting_a_character_at_the_beginning_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::deleting_a_newline_deletes_it ... ok [INFO] [stdout] test tests::test_deleting::deleting_across_formatting_different_types_on_node_boundary ... ok [INFO] [stdout] test tests::test_deleting::deleting_across_lists_joins_them ... ok [INFO] [stdout] test tests::test_deleting::deleting_across_formatting_different_types ... ok [INFO] [stdout] test tests::test_deleting::deleting_across_list_items_joins_them ... ok [INFO] [stdout] test tests::test_deleting::deleting_initial_text_node_removes_it_completely_without_crashing ... ok [INFO] [stdout] test tests::test_deleting::deleting_in_nested_structure_and_format_nodes_works ... ok [INFO] [stdout] test tests::test_deleting::deleting_empty_list_item ... ok [INFO] [stdout] test tests::test_deleting::deleting_all_initial_text_within_a_tag_preserves_the_tag ... ok [INFO] [stdout] test tests::test_deleting::deleting_across_lists_joins_them_nested ... ok [INFO] [stdout] test tests::test_deleting::deleting_all_initial_text_and_merging_later_text_produces_one_text_node ... ok [INFO] [stdout] test tests::test_deleting::deleting_selection_in_a_container ... ok [INFO] [stdout] test tests::test_deleting::deleting_last_character_in_a_container ... ok [INFO] [stdout] test tests::test_deleting::deleting_selection_in_multiple_containers ... ok [INFO] [stdout] test tests::test_deleting::deleting_all_text_within_a_tag_deletes_the_tag ... ok [INFO] [stdout] test tests::test_deleting::deleting_initial_text_node_via_selection_removes_it_completely ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_at_linebreak_removes_linebreak ... ignored [INFO] [stdout] test tests::test_deleting::html_backspace_word_at_beginning_does_nothing ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_does_not_change_model ... ok [INFO] [stdout] test tests::test_deleting::deleting_selection_of_a_container_with_matching_neighbors ... ok [INFO] [stdout] test tests::test_deleting::deleting_selection_of_a_container_in_multiple_containers ... ok [INFO] [stdout] test tests::test_deleting::deleting_selection_of_a_container_with_text_node_neighbors ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_at_end_of_single_word_removes_word ... ok [INFO] [stdout] test tests::test_deleting::deleting_when_spanning_two_separate_identical_tags_joins_them ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_does_not_remove_past_linebreak_in_word ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_for_single_empty_list_item ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_in_word_removes_start_of_word ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_does_not_move_outside_list_item ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_inside_single_list_item ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_for_empty_list_item ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_out_of_deep_nesting ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_into_a_tag ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_only_one_linebreak_of_many ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_past_linebreak_in_whitespace ... ignored [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_runs_of_non_word_characters_and_whitespace ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_runs_of_non_word_characters ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_between_tags ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_between_nested_tags ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_whitespace_then_word ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_with_selection_only_removes_selection ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_single_linebreak ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_at_end_does_nothing ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_into_deep_nesting ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_whole_word ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_at_linebreak_removes_linebreak ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_does_not_change_model ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_with_multiple_words_removes_single_word ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_at_start_of_single_word_removes_word ... ok [INFO] [stdout] test tests::test_deleting::html_backspace_word_removes_through_a_tag ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_does_not_move_outside_list_item ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_in_word_removes_end_of_word ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_for_single_empty_list_item ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_does_not_remove_past_linebreak_in_word ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_inside_single_list_item ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_only_one_linebreak_of_many ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_for_empty_list_item ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_runs_of_non_word_characters_and_whitespace ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_between_tags ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_single_linebreak ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_runs_of_non_word_characters ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_between_nested_tags ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_into_a_tag ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_past_linebreak_in_whitespace ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_out_of_deep_nesting ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_whole_word ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_whitespace_then_word ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_removes_through_a_tag ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_into_deep_nesting ... ok [INFO] [stdout] test tests::test_deleting::plain_backspace_word_at_beginning_does_nothing ... ok [INFO] [stdout] test tests::test_deleting::plain_backspace_word_in_word_removes_start_of_word ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_with_selection_only_removes_selection ... ok [INFO] [stdout] test tests::test_deleting::plain_backspace_word_at_end_of_single_word_removes_word ... ok [INFO] [stdout] test tests::test_deleting::plain_backspace_word_removes_runs_of_non_word_characters ... ok [INFO] [stdout] test tests::test_deleting::html_delete_word_with_multiple_words_removes_single_word ... ok [INFO] [stdout] test tests::test_deleting::plain_backspace_word_with_selection_only_removes_selection ... ok [INFO] [stdout] test tests::test_deleting::plain_delete_word_at_end_does_nothing ... ok [INFO] [stdout] test tests::test_deleting::plain_delete_word_at_start_of_single_word_removes_word ... ok [INFO] [stdout] test tests::test_deleting::plain_backspace_word_removes_runs_of_non_word_characters_and_whitespace ... ok [INFO] [stdout] test tests::test_deleting::plain_backspace_word_with_multiple_words_removes_single_word ... ok [INFO] [stdout] test tests::test_deleting::plain_backspace_word_removes_whitespace_then_word ... ok [INFO] [stdout] test tests::test_deleting::plain_delete_word_in_word_removes_end_of_word ... ok [INFO] [stdout] test tests::test_deleting::plain_delete_word_removes_whitespace_then_word ... ok [INFO] [stdout] test tests::test_deleting::plain_delete_word_removes_runs_of_non_word_characters_and_whitespace ... ok [INFO] [stdout] test tests::test_deleting::test_backspace_emoji ... ok [INFO] [stdout] test tests::test_deleting::test_backspace_complex_grapheme ... ok [INFO] [stdout] test tests::test_deleting::test_backspace_complex_emoji ... ok [INFO] [stdout] test tests::test_deleting::plain_delete_word_removes_runs_of_non_word_characters ... ok [INFO] [stdout] test tests::test_deleting::plain_delete_word_with_multiple_words_removes_single_word ... ok [INFO] [stdout] test tests::test_formatting::format_empty_model_applies_formatting ... ok [INFO] [stdout] test tests::test_emoji_replacement::can_do_plain_text_to_empji_replacement ... ok [INFO] [stdout] test tests::test_deleting::plain_delete_word_with_selection_only_removes_selection ... ok [INFO] [stdout] test tests::test_deleting::test_delete_complex_grapheme ... ok [INFO] [stdout] test tests::test_formatting::changing_selection_to_same_doesnt_removes_formatting_state ... ok [INFO] [stdout] test tests::test_deleting::test_delete_complex_emoji ... ok [INFO] [stdout] test tests::test_deleting::test_delete_emoji ... ok [INFO] [stdout] test tests::test_formatting::formatting_in_an_empty_model_applies_formatting ... ok [INFO] [stdout] test tests::test_formatting::format_several_nodes_with_empty_text_nodes ... ok [INFO] [stdout] test tests::test_formatting::formatting_again_removes_toggled_format_type ... ok [INFO] [stdout] test tests::test_formatting::bolding_ascii_adds_strong_tags ... ok [INFO] [stdout] test tests::test_formatting::formatting_and_unformatting_with_zero_length_selection ... ok [INFO] [stdout] test tests::test_formatting::formatting_before_typing_anything_applies_formatting ... ok [INFO] [stdout] test tests::test_formatting::formatting_some_char_in_word_with_inline_code ... ok [INFO] [stdout] test tests::test_formatting::formatting_with_zero_length_selection_apply_on_replace_text ... ok [INFO] [stdout] test tests::test_formatting::formatting_multiple_lines_with_inline_code ... ok [INFO] [stdout] test tests::test_formatting::formatting_twice_adds_no_formatting ... ok [INFO] [stdout] test tests::test_formatting::locations_when_pressing_enter ... ok [INFO] [stdout] test tests::test_formatting::selecting_and_bolding_multiple_times ... ok [INFO] [stdout] test tests::test_formatting::formatting_in_an_empty_paragraph_applies_formatting ... ok [INFO] [stdout] test tests::test_formatting::selecting_removes_toggled_format_types ... ok [INFO] [stdout] test tests::test_formatting::formatting_nested_format_nodes_and_line_breaks ... ok [INFO] [stdout] test tests::test_formatting::selecting_and_unbolding_multiple_times ... ok [INFO] [stdout] test tests::test_formatting::partial_unformat_nested_node ... ok [INFO] [stdout] test tests::test_formatting::splitting_a_formatting_tag_across_multiple_lines ... ok [INFO] [stdout] test tests::test_formatting::splitting_a_formatting_tag_multiple_times_across_multiple_lines ... ok [INFO] [stdout] test tests::test_formatting::splitting_a_formatting_tag_across_two_lines ... ok [INFO] [stdout] test tests::test_formatting::formatting_deeper_nested_format_nodes_and_nested_line_breaks ... ok [INFO] [stdout] test tests::test_formatting::partial_unformat_toplevel_node_reconstructs_expected_model ... ok [INFO] [stdout] test tests::test_formatting::unformat_toplevel_node_moves_nested_nodes ... ok [INFO] [stdout] test tests::test_formatting::unformat_nested_node ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_cursor_at_end_of_normal_text ... ok [INFO] [stdout] test tests::test_formatting::unformatting_with_zero_length_selection_removes_on_replace_text ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_cursor_at_the_end_of_a_link ... ok [INFO] [stdout] test tests::test_formatting::unformatting_consecutive_same_formatting_nodes ... ok [INFO] [stdout] test tests::test_formatting::unformat_several_nodes ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_cursor_at_the_start_of_a_link ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_cursor_inside_a_link ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_cursor_inside_a_container ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_highlighted_normal_text ... ok [INFO] [stdout] test tests::test_formatting::unformatting_consecutive_same_formatting_nodes_with_nested_line_break ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_cursor_inside_text ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_selection_inside_a_container ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_highlighted_link ... ok [INFO] [stdout] test tests::test_formatting::unformatting_consecutive_same_formatting_nodes_with_nested_node ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_selection_that_contains_a_link_and_non_links ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_blank_selection_between_texts ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_selection_that_contains_multiple_links ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_blank_selection_after_a_link ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_blank_selection_in_container ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_selection_that_contains_multiple_links_partially ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_blank_selection ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_blank_selection_with_line_break ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_from_selection_that_contains_multiple_links_partially_in_different_containers ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_blank_selection_with_different_containers ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_blank_selection_with_different_types_of_whitespaces ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_immutable_link_trailing ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_mention_trailing ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_mention_leading ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_cross_selected_immutable_link ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_immutable_link_leading ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_selected_immutable_link ... ok [INFO] [stdout] test tests::test_get_link_action::set_link_with_text_on_blank_selection_after_text ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_cross_selected_mention ... ok [INFO] [stdout] test tests::test_links::add_text_at_end_of_link ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_selected_mention ... ok [INFO] [stdout] test tests::test_get_link_action::set_link_with_text_on_blank_selection_before_text ... ok [INFO] [stdout] test tests::test_links::replace_text_in_a_completely_highlighted_container_inside_a_link ... ignored [INFO] [stdout] test tests::test_links::replace_text_in_a_link_inside_a_list ... ignored [INFO] [stdout] test tests::test_links::replace_text_in_a_link_inside_a_list_partially_selected_ending_inside ... ignored [INFO] [stdout] test tests::test_links::create_link_after_enter_with_no_formatting_applied ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_multiple_link_with_last_is_mention ... ok [INFO] [stdout] test tests::test_links::create_link_after_enter_with_formatting_applied ... ok [INFO] [stdout] test tests::test_links::replace_text_in_a_link_inside_a_list_partially_selected_starting_inside ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_multiple_link_with_last_immutable ... ok [INFO] [stdout] test tests::test_links::replace_text_in_a_partially_highlighted_container_inside_a_link_at_the_start ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_multiple_link_with_first_immutable ... ok [INFO] [stdout] test tests::test_links::replace_text_in_a_partially_highlighted_container_inside_a_link_starting_and_ending_inside ... ok [INFO] [stdout] test tests::test_links::replace_text_over_a_link ... ignored [INFO] [stdout] test tests::test_links::replace_text_over_a_link_ending_after ... ignored [INFO] [stdout] test tests::test_links::replace_text_in_a_link_inside_a_list_partially_selected_starting_inside_ending_inside ... ok [INFO] [stdout] test tests::test_links::add_text_at_end_of_link_inside_a_container ... ok [INFO] [stdout] test tests::test_get_link_action::get_link_action_on_multiple_link_with_first_is_mention ... ok [INFO] [stdout] test tests::test_links::replace_text_partially_highlighted_inside_a_link_and_starting_before ... ok [INFO] [stdout] test tests::test_links::replace_text_in_a_partially_highlighted_container_inside_a_link_starting_inside_and_ending_at_the_end ... ok [INFO] [stdout] test tests::test_links::replace_text_right_after_link ... ok [INFO] [stdout] test tests::test_links::replace_text_partially_highlighted_inside_a_link_and_starting_inside ... ok [INFO] [stdout] test tests::test_links::replace_text_right_after_link_with_next_text ... ok [INFO] [stdout] test tests::test_links::replace_text_right_before_link ... ok [INFO] [stdout] test tests::test_links::replace_text_over_a_link_starting_before ... ok [INFO] [stdout] test tests::test_links::replace_text_with_selection_starting_in_one_link_and_ending_in_another ... ignored [INFO] [stdout] test tests::test_links::replace_text_with_selection_starting_in_one_link_and_ending_in_another_partially ... ignored [INFO] [stdout] test tests::test_links::replace_text_partially_highlighted_inside_a_link_and_starting_before_in_a_container ... ok [INFO] [stdout] test tests::test_links::replace_text_right_after_link_with_next_formatted_text ... ok [INFO] [stdout] test tests::test_links::replace_text_over_a_link_starting_before_and_ending_afterwards ... ok [INFO] [stdout] test tests::test_links::replace_text_right_before_link_with_formatted_prev_text ... ok [INFO] [stdout] test tests::test_links::replace_text_partially_highlighted_inside_a_link_and_starting_inside_in_a_container ... ok [INFO] [stdout] test tests::test_links::replace_text_right_before_link_with_prev_text ... ok [INFO] [stdout] test tests::test_links::set_link_accross_list_items_with_container ... ok [INFO] [stdout] test tests::test_links::set_link_accross_list_items ... ok [INFO] [stdout] test tests::test_links::set_link_accross_quote ... ok [INFO] [stdout] test tests::test_links::set_link_add_mail_scheme ... ok [INFO] [stdout] test tests::test_links::set_link_across_multiple_paragraphs ... ok [INFO] [stdout] test tests::test_links::set_link_across_multiple_paragraphs_containing_an_entire_pagraph ... ok [INFO] [stdout] test tests::test_links::set_link_add_mail_scheme_with_plus ... ok [INFO] [stdout] test tests::test_links::set_link_across_list_items_with_multiple_inline_formattings_selected ... ok [INFO] [stdout] test tests::test_links::replace_text_with_selection_starting_partially_in_one_link_and_ending_in_another ... ok [INFO] [stdout] test tests::test_links::set_link_do_not_change_scheme_for_http ... ok [INFO] [stdout] test tests::test_links::set_link_do_not_change_scheme_for_udp ... ok [INFO] [stdout] test tests::test_links::replace_text_with_selection_starting_partially_in_one_link_and_ending_in_another_partially ... ok [INFO] [stdout] test tests::test_links::set_link_highlighted_inside_a_link ... ok [INFO] [stdout] test tests::test_links::set_link_across_list_items_including_an_entire_item ... ok [INFO] [stdout] test tests::test_links::set_link_do_not_change_scheme_for_mail ... ok [INFO] [stdout] test tests::test_links::set_link_around_mentions ... ok [INFO] [stdout] test tests::test_links::set_link_in_already_linked_text_with_partial_selection ... ok [INFO] [stdout] test tests::test_links::set_link_in_list_then_exit_list ... ok [INFO] [stdout] test tests::test_links::set_link_in_multiple_leaves_of_formatted_text_partially_covered ... ok [INFO] [stdout] test tests::test_links::set_link_around_links ... ok [INFO] [stdout] test tests::test_links::set_link_in_multiple_leaves_of_formatted_text_partially_covered_2 ... ok [INFO] [stdout] test tests::test_links::set_link_in_already_linked_text ... ok [INFO] [stdout] test tests::test_links::set_link_in_text_and_already_linked_text ... ok [INFO] [stdout] test tests::test_links::set_link_partially_highlighted_inside_a_link_and_starting_inside ... ok [INFO] [stdout] test tests::test_links::set_link_to_empty_selection_at_start_of_a_link ... ok [INFO] [stdout] test tests::test_links::set_link_to_empty_selection ... ok [INFO] [stdout] test tests::test_links::set_link_in_multiple_leaves_of_formatted_text ... ok [INFO] [stdout] test tests::test_links::set_link_partially_highlighted_inside_a_link_and_starting_before ... ok [INFO] [stdout] test tests::test_links::set_link_to_empty_selection_at_end_of_alink ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_at_end_of_a_link ... ignored [INFO] [stdout] test tests::test_links::set_link_to_empty_selection_within_a_link ... ok [INFO] [stdout] test tests::test_links::set_link_with_custom_attributes ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_in_container ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_and_custom_attributes ... ok [INFO] [stdout] test tests::test_links::set_link_with_text ... ok [INFO] [stdout] test tests::test_links::set_link_in_multiple_leaves_of_formatted_text_with_link ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_and_undo ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_on_blank_selection_after_text ... ok [INFO] [stdout] test tests::test_links::set_link_with_selection_add_http_scheme ... ok [INFO] [stdout] test tests::test_links::set_link_without_http_scheme ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_on_blank_selection_in_container ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_on_blank_selection_before_text ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_on_blank_selection_between_texts ... ok [INFO] [stdout] test tests::test_links::set_link_without_http_scheme_and_www ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_on_blank_selection ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_on_blank_selection_with_line_break ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_within_a_link ... ok [INFO] [stdout] test tests::test_links::set_links_in_list_then_add_list_item ... ok [INFO] [stdout] test tests::test_links::set_link_wraps_selection_in_link_tag ... ok [INFO] [stdout] test tests::test_lists::backspacing_an_indented_list_item_with_siblings_doesnt_remove_parent_list_item_paragraph ... ok [INFO] [stdout] test tests::test_links::set_link_with_text_on_blank_selection_with_different_containers ... ok [INFO] [stdout] test tests::test_lists::backspacing_at_start_of_first_list_item_extracts_it_if_no_previous_block_node_exists ... ok [INFO] [stdout] test tests::test_lists::backspace_text_in_list_item ... ok [INFO] [stdout] test tests::test_lists::backspacing_an_empty_indented_list_item_removes_parent_list_item_paragraph ... ok [INFO] [stdout] test tests::test_lists::appending_new_list_to_previous ... ok [INFO] [stdout] test tests::test_lists::backspacing_in_empty_list_then_creating_a_new_list ... ok [INFO] [stdout] test tests::test_lists::backspacing_in_list_leaving_some_text_keeps_items_unchanged ... ok [INFO] [stdout] test tests::test_lists::backspacing_at_start_of_first_list_item_adds_it_to_previous_block_node_if_exists ... ok [INFO] [stdout] test tests::test_lists::backspacing_empty_second_list_item_into_whole_of_first_leaves_empty_item ... ok [INFO] [stdout] test tests::test_lists::backspacing_whole_of_second_item_list_into_part_of_first_leaves_one_item ... ok [INFO] [stdout] test tests::test_lists::can_create_list_in_empty_model ... ok [INFO] [stdout] test tests::test_lists::backspacing_through_several_list_items ... ok [INFO] [stdout] test tests::test_lists::creating_a_new_list_immediately_after_an_old_one_joins_them ... ok [INFO] [stdout] test tests::test_lists::creating_list_from_multiline_selection ... ok [INFO] [stdout] test tests::test_lists::backspacing_the_whole_list ... ok [INFO] [stdout] test tests::test_lists::backspacing_at_a_non_empty_indented_list_item_start_removes_parent_list_item_paragraph ... ok [INFO] [stdout] test tests::test_lists::backspacing_trailing_part_of_a_list_item ... ok [INFO] [stdout] test tests::test_lists::backspacing_trailing_part_of_a_list_item_with_formatting ... ok [INFO] [stdout] test tests::test_lists::creating_ordered_list_and_writing ... ok [INFO] [stdout] test tests::test_lists::creating_list_of_different_type_doesnt_merge ... ok [INFO] [stdout] test tests::test_lists::creating_list_from_multiline_selection_with_cross_trailing_formatting ... ok [INFO] [stdout] test tests::test_lists::creating_unordered_list ... ok [INFO] [stdout] test tests::test_lists::creating_list_from_multiline_selection_with_formatting ... ok [INFO] [stdout] test tests::test_lists::backspacing_with_selection_across_an_indented_list_item_removes_parent_list_item_paragraph ... ok [INFO] [stdout] test tests::test_lists::creating_list_from_multiline_selection_with_cross_leading_formatting ... ok [INFO] [stdout] test tests::test_lists::entering_mid_text_node ... ok [INFO] [stdout] test tests::test_lists::entering_mid_text_node_with_formatting ... ok [INFO] [stdout] test tests::test_lists::entering_mid_text_node_with_selection ... ok [INFO] [stdout] test tests::test_lists::creating_list_from_multiline_selection_with_trailing_formatting ... ok [INFO] [stdout] test tests::test_lists::enter_in_empty_indented_and_formatted_list_item ... ok [INFO] [stdout] test tests::test_lists::creating_list_from_multiline_selection_with_leading_formatting ... ok [INFO] [stdout] test tests::test_lists::entering_mid_text_node_with_multiple_formatting ... ok [INFO] [stdout] test tests::test_lists::entering_mid_text_node_with_subsequent_items ... ok [INFO] [stdout] test tests::test_lists::entering_mid_text_node_with_trailing_formatting ... ok [INFO] [stdout] test tests::test_lists::entering_mid_text_node_with_leading_formatting ... ok [INFO] [stdout] test tests::test_lists::entering_with_entire_selection_with_formatting ... ok [INFO] [stdout] test tests::test_lists::entering_with_entire_selection_in_one_node_deletes_list ... ok [INFO] [stdout] test tests::test_lists::entering_with_subsequent_items ... ok [INFO] [stdout] test tests::test_lists::indent_several_list_items_complex_case_works ... ok [INFO] [stdout] test tests::test_lists::multiple_list_toggle ... ok [INFO] [stdout] test tests::test_lists::moving_list_item_content_out ... ok [INFO] [stdout] test tests::test_lists::new_list_after_linebreak ... ok [INFO] [stdout] test tests::test_lists::indent_single_list_item_works ... ok [INFO] [stdout] test tests::test_lists::entering_with_entire_selection_across_multiple_nodes_deletes_list ... ok [INFO] [stdout] test tests::test_lists::removing_list ... ok [INFO] [stdout] test tests::test_lists::removing_formatted_trailing_list_item_with_list_toggle ... ok [INFO] [stdout] test tests::test_lists::indent_several_list_items_simple_case_works ... ok [INFO] [stdout] test tests::test_lists::removing_formatted_trailing_list_item_with_enter ... ok [INFO] [stdout] test tests::test_lists::indent_single_empty_list_item_works ... ok [INFO] [stdout] test tests::test_lists::indent_several_list_items_with_sub_levels_works ... ok [INFO] [stdout] test tests::test_lists::removing_trailing_list_item_with_list_toggle ... ok [INFO] [stdout] test tests::test_lists::replacing_cross_list_item_selection_with_text_containing_newline_works ... ok [INFO] [stdout] test tests::test_lists::removing_trailing_list_item_with_enter ... ok [INFO] [stdout] test tests::test_lists::toggle_list_then_type_text ... ok [INFO] [stdout] test tests::test_lists::removing_trailing_list_item_then_replace_text ... ok [INFO] [stdout] test tests::test_lists::replacing_text_with_newline_characters_inserts_list_items ... ok [INFO] [stdout] test tests::test_lists::unindent_several_items_works ... ok [INFO] [stdout] test tests::test_lists_with_blocks::create_list_inside_quote ... ok [INFO] [stdout] test tests::test_lists::unindent_nested_lists_works ... ok [INFO] [stdout] test tests::test_lists::unindent_middle_list_item_works ... ok [INFO] [stdout] test tests::test_lists::removing_list_item ... ok [INFO] [stdout] test tests::test_lists_with_blocks::create_list_with_selected_paragraph_and_codeblock ... ok [INFO] [stdout] test tests::test_lists_with_blocks::create_list_with_selected_paragraph_and_codeblock_with_multiple_lines ... ok [INFO] [stdout] test tests::test_lists::updating_list_type ... ok [INFO] [stdout] test tests::test_lists_with_blocks::create_list_inside_quote_with_multiple_paragraphs ... ok [INFO] [stdout] test tests::test_mentions::codeblock_insert_anywhere - should panic ... ok [INFO] [stdout] test tests::test_lists_with_blocks::create_list_with_selected_paragraph_and_quote ... ok [INFO] [stdout] test tests::test_mentions::can_insert_at_room_mention ... ok [INFO] [stdout] test tests::test_lists_with_blocks::create_list_with_selected_paragraph_and_quote_with_multiple_nested_paragraphs ... ok [INFO] [stdout] test tests::test_mentions::formatting_node_inline_code - should panic ... ok [INFO] [stdout] test tests::test_lists_with_blocks::create_list_with_selected_paragraph_quote_and_code_block ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_empty_for_non_intentional_at_room_mention ... ok [INFO] [stdout] test tests::test_lists::unindent_nested_lists_with_remnants_works ... ok [INFO] [stdout] test tests::test_mentions::formatting_node_replace_end ... ok [INFO] [stdout] test tests::test_mentions::formatting_node_replace_all ... ok [INFO] [stdout] test tests::test_mentions::formatting_node_replace_start ... ok [INFO] [stdout] test tests::test_mentions::formatting_node_replace_middle ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_at_room_plain_mention ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_at_room_mention ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_no_mentions ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_room_id ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_room_alias ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_user_mention ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_multiple_mentions ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_multiple_user_and_at_room_mentions ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_multiple_user_mentions ... ok [INFO] [stdout] test tests::test_mentions::inserting_with_at_room_inner_text_inserts_at_room_type ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_user_mention_with_custom_link ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_for_room_id_and_room_alias ... ok [INFO] [stdout] test tests::test_mentions::inserting_with_external_user_works ... ok [INFO] [stdout] test tests::test_mentions::inserting_with_external_room_works ... ok [INFO] [stdout] test tests::test_mentions::inserting_with_room_url_inserts_room_type ... ok [INFO] [stdout] test tests::test_mentions::inserting_with_user_url_inserts_user_type ... ok [INFO] [stdout] test tests::test_mentions::linebreak_insert_after ... ok [INFO] [stdout] test tests::test_mentions::inserting_with_invalid_mention_url_does_nothing ... ok [INFO] [stdout] test tests::test_mentions::linebreak_insert_before ... ok [INFO] [stdout] test tests::test_mentions::link_insert_middle - should panic ... ok [INFO] [stdout] test tests::test_mentions::link_insert_after ... ok [INFO] [stdout] test tests::test_mentions::get_mentions_state_with_duplications ... ok [INFO] [stdout] test tests::test_mentions::list_item_replace_end ... ok [INFO] [stdout] test tests::test_mentions::list_item_replace_middle ... ok [INFO] [stdout] test tests::test_mentions::list_item_insert_into_empty ... ok [INFO] [stdout] test tests::test_mentions::paragraph_insert_into_empty ... ok [INFO] [stdout] test tests::test_mentions::mention_with_attributes ... ok [INFO] [stdout] test tests::test_mentions::mention_insert_before ... ok [INFO] [stdout] test tests::test_mentions::mention_insert_after ... ok [INFO] [stdout] test tests::test_mentions::mention_without_attributes ... ok [INFO] [stdout] test tests::test_mentions::list_item_replace_start ... ok [INFO] [stdout] test tests::test_mentions::link_insert_before ... ok [INFO] [stdout] test tests::test_mentions::quote_replace_end ... ok [INFO] [stdout] test tests::test_mentions::paragraph_replace_end ... ok [INFO] [stdout] test tests::test_mentions::quote_insert_into_empty ... ok [INFO] [stdout] test tests::test_mentions::quote_replace_middle ... ok [INFO] [stdout] test tests::test_mentions::quote_replace_start ... ok [INFO] [stdout] test tests::test_mentions::paragraph_insert_into_empty_second ... ok [INFO] [stdout] test tests::test_mentions::paragraph_replace_middle ... ok [INFO] [stdout] test tests::test_mentions::paragraph_replace_start ... ok [INFO] [stdout] test tests::test_mentions::selection_codeblock ... ok [INFO] [stdout] test tests::test_mentions::selection_link_spanning_partial ... ok [INFO] [stdout] test tests::test_mentions::selection_formatting_inline_code ... ok [INFO] [stdout] test tests::test_mentions::selection_formatting_inside ... ok [INFO] [stdout] test tests::test_mentions::selection_link_spanning_all ... ok [INFO] [stdout] test tests::test_mentions::selection_link_inside ... ok [INFO] [stdout] test tests::test_mentions::selection_paragraph_middle ... ok [INFO] [stdout] test tests::test_mentions::selection_list_item_spanning ... ok [INFO] [stdout] test tests::test_mentions::selection_formatting_spanning ... ok [INFO] [stdout] test tests::test_mentions::selection_plain_text_start ... ok [INFO] [stdout] test tests::test_mentions::text_node_replace_end ... ok [INFO] [stdout] test tests::test_mentions::selection_plain_text_replace ... ok [INFO] [stdout] test tests::test_mentions::selection_plain_text_middle ... ok [INFO] [stdout] test tests::test_mentions::text_node_replace_all ... ok [INFO] [stdout] test tests::test_mentions::text_node_replace_middle ... ok [INFO] [stdout] test tests::test_mentions::selection_quote ... ok [INFO] [stdout] test tests::test_mentions::selection_paragraph_spanning ... ok [INFO] [stdout] test tests::test_mentions::text_node_replace_start ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_detected_if_cursor_is_right_before ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_detected_in_list ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_not_detected_if_preceded_by_non_whitespace_char ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_detected_after_text ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_not_detected_after_whitespace ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_not_detected_in_code_block ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_detected_in_formatting_node ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_not_detected_if_selection_spans_across_it ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_not_detected_after_moving_in_code_block ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_detected ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_not_detected_in_inline_code ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_still_detected_after_moving_inside_structure_node ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_detected_in_quote ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_updated_on_character_input ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_not_detected_in_link ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_still_detected_after_applying_formatting ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_updated_on_delete ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_detected_if_selection_is_entirely_inside ... ok [INFO] [stdout] test tests::test_menu_action::menu_action_retuns_keep_after_format_with_cursor ... ok [INFO] [stdout] test tests::test_menu_action::empty_at_pattern_is_detected ... ok [INFO] [stdout] test tests::test_menu_action::hash_pattern_is_detected ... ok [INFO] [stdout] test tests::test_menu_state::clicking_code_block_disables_expected_formatting_functions ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_updated_upon_selection ... ok [INFO] [stdout] test tests::test_menu_action::slash_pattern_is_not_detected_if_not_at_the_beginning_of_dom ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_updated_on_whitespace_input ... ok [INFO] [stdout] test tests::test_menu_action::slash_pattern_is_detected ... ok [INFO] [stdout] test tests::test_menu_state::code_block_disables_expected_formatting_functions_with_selection ... ok [INFO] [stdout] test tests::test_menu_action::at_pattern_is_updated_on_backspace ... ok [INFO] [stdout] test tests::test_menu_action::suggestion_applies_additional_offset_from_structure_nodes ... ok [INFO] [stdout] test tests::test_menu_state::disable_inline_code_with_cursor_immediately_updates_disabled_actions ... ok [INFO] [stdout] test tests::test_menu_state::code_block_doesnt_affect_cursor_if_its_outside ... ok [INFO] [stdout] test tests::test_menu_state::enable_inline_code_with_cursor_immediately_updates_disabled_actions ... ok [INFO] [stdout] test tests::test_menu_state::empty_paragraph_with_formatting_computes_expected_menu_state ... ok [INFO] [stdout] test tests::test_menu_state::creating_and_deleting_lists_updates_reversed_actions ... ok [INFO] [stdout] test tests::test_menu_state::code_block_disables_expected_formatting_functions_with_cursor ... ok [INFO] [stdout] test tests::test_menu_state::formatting_zero_length_selection_updates_reversed_actions ... ok [INFO] [stdout] test tests::test_menu_state::formatting_is_disabled_when_selection_covers_inline_code_node ... ok [INFO] [stdout] test tests::test_menu_state::empty_list_item_with_formatting_computes_expected_menu_state ... ok [INFO] [stdout] test tests::test_menu_state::selecting_after_a_line_break_inside_formatting_nodes_reversed_actions ... ok [INFO] [stdout] test tests::test_menu_state::cursor_at_the_end_of_link_reverses_the_link_action ... ok [INFO] [stdout] test tests::test_menu_state::formatting_updates_reversed_actions ... ok [INFO] [stdout] test tests::test_menu_state::formatting_is_disabled_when_selection_is_inside_inline_code_node ... ok [INFO] [stdout] test tests::test_menu_state::selecting_nested_nodes_updates_reversed_actions ... ok [INFO] [stdout] test tests::test_menu_state::selecting_restores_reversed_actions ... ok [INFO] [stdout] test tests::test_menu_state::test_menu_updates_indent ... ok [INFO] [stdout] test tests::test_menu_state::selecting_cross_unmatching_indented_list_exclude_both_list_types ... ok [INFO] [stdout] test tests::test_menu_state::test_menu_updates_unindent ... ok [INFO] [stdout] test tests::test_paragraphs::adding_line_break_after_replacing_with_empty_html ... ok [INFO] [stdout] test tests::test_menu_state::formatting_is_disabled_when_selection_covers_inline_code_node_and_others ... ok [INFO] [stdout] test tests::test_paragraphs::adding_line_break_at_the_beginning_of_a_line_makes_a_new_line_above ... ok [INFO] [stdout] test tests::test_menu_state::selecting_line_break_inside_formatting_node_reversed_actions ... ok [INFO] [stdout] test tests::test_paragraphs::adding_line_break_at_the_end_of_a_line_makes_a_new_line ... ok [INFO] [stdout] test tests::test_menu_state::selecting_indented_list_only_marks_the_deepest_list_type_as_reversed ... ok [INFO] [stdout] test tests::test_menu_state::updating_model_updates_disabled_actions ... ok [INFO] [stdout] test tests::test_menu_state::selecting_cross_matching_indented_list_include_list_type ... ok [INFO] [stdout] test tests::test_paragraphs::adding_line_break_with_text_selected_splits_the_line ... ok [INFO] [stdout] test tests::test_paragraphs::backspace_at_end_of_code_block_adds_the_content_of_the_next_block_node_to_it ... ok [INFO] [stdout] test tests::test_paragraphs::backspace_at_start_of_code_block_moves_contents_to_previous_block ... ok [INFO] [stdout] test tests::test_paragraphs::backspace_emptying_code_block_removes_it ... ok [INFO] [stdout] test tests::test_paragraphs::backspace_merges_text_nodes ... ok [INFO] [stdout] test tests::test_paragraphs::backspace_deletes_br ... ok [INFO] [stdout] test tests::test_paragraphs::backspace_after_several_empty_paragraphs_deletes_only_one ... ok [INFO] [stdout] test tests::test_paragraphs::can_add_line_break_on_later_lines ... ok [INFO] [stdout] test tests::test_paragraphs::adding_line_break_in_the_middle_of_a_line_splits_it ... ok [INFO] [stdout] test tests::test_paragraphs::backspace_to_beginning_of_line ... ok [INFO] [stdout] test tests::test_paragraphs::backspace_merges_formatting_nodes ... ok [INFO] [stdout] test tests::test_paragraphs::can_backspace_to_beginning_after_adding_a_line_break ... ok [INFO] [stdout] test tests::test_paragraphs::can_place_cursor_inside_brs_and_backspace ... ok [INFO] [stdout] test tests::test_paragraphs::double_enter_in_quote_at_start_when_empty ... ok [INFO] [stdout] test tests::test_paragraphs::double_enter_in_quote_at_end_when_not_empty_exits_it ... ok [INFO] [stdout] test tests::test_paragraphs::delete_deletes_br ... ok [INFO] [stdout] test tests::test_paragraphs::double_enter_in_quote_at_start_when_not_empty ... ok [INFO] [stdout] test tests::test_paragraphs::enter_in_code_block_after_line_break_at_end_exits_it ... ok [INFO] [stdout] test tests::test_paragraphs::enter_in_code_block_after_line_break_in_middle_splits_code_block ... ok [INFO] [stdout] test tests::test_paragraphs::enter_in_code_block_after_nested_line_break_in_middle_splits_code_block ... ok [INFO] [stdout] test tests::test_paragraphs::enter_after_setting_html_with_blockquote_with_a_single_line ... ok [INFO] [stdout] test tests::test_paragraphs::double_enter_in_code_block_when_empty_removes_it_and_adds_new_line ... ok [INFO] [stdout] test tests::test_paragraphs::enter_in_code_block_at_start_with_a_line_break_after_it_adds_another_one ... ok [INFO] [stdout] test tests::test_paragraphs::double_enter_in_quote_exits_the_quote ... ok [INFO] [stdout] test tests::test_paragraphs::enter_in_code_block_at_start_adds_the_line_break ... ok [INFO] [stdout] test tests::test_paragraphs::enter_in_code_block_in_text_node_adds_line_break_as_text ... ok [INFO] [stdout] test tests::test_paragraphs::enter_in_code_block_at_start_with_previous_line_break_moves_it_outside_the_code_block ... ok [INFO] [stdout] test tests::test_paragraphs::double_enter_in_quote_in_nested_nodes ... ok [INFO] [stdout] test tests::test_paragraphs::can_place_cursor_inside_brs_and_delete ... ok [INFO] [stdout] test tests::test_paragraphs::pressing_enter_after_wrapping_text_in_code_block_works ... ok [INFO] [stdout] test tests::test_paragraphs::multiple_line_breaks_can_be_added ... ok [INFO] [stdout] test tests::test_paragraphs::new_line_at_start_of_link_does_not_extend_it ... ok [INFO] [stdout] test tests::test_paragraphs::pressing_enter_at_the_start_of_a_multiline_code_block ... ok [INFO] [stdout] test tests::test_paragraphs::pressing_enter_after_backspacing_a_paragraph ... ok [INFO] [stdout] test tests::test_paragraphs::pressing_enter_in_the_middle_of_a_multiline_code_block ... ok [INFO] [stdout] test tests::test_paragraphs::pressing_enter_in_the_middle_of_a_multiline_code_block_with_empty_starting_paragraphs ... ok [INFO] [stdout] test tests::test_paragraphs::enter_after_setting_html_with_blockquote_containing_formatting ... ok [INFO] [stdout] test tests::test_paragraphs::pressing_enter_with_a_brand_new_model ... ok [INFO] [stdout] test tests::test_paragraphs::enter_in_code_block_at_start_with_previous_line_break_moves_it_outside_the_code_block_with_text_around ... ok [INFO] [stdout] test tests::test_paragraphs::new_line_at_end_of_link_does_not_extend_it ... ok [INFO] [stdout] test tests::test_paragraphs::pressing_enter_with_an_empty_model_inserts_a_line_break ... ok [INFO] [stdout] test tests::test_paragraphs::pressing_enter_at_the_start_of_a_multiline_block_quote ... ok [INFO] [stdout] test tests::test_paragraphs::simple_enter_in_quote_adds_new_paragraph ... ok [INFO] [stdout] test tests::test_paragraphs::setting_html_with_line_blockquote_that_contains_a_single_line ... ok [INFO] [stdout] test tests::test_paragraphs::pressing_enter_in_the_middle_of_a_multiline_block_quote_with_empty_starting_paragraphs ... ok [INFO] [stdout] test tests::test_paragraphs::pressing_enter_in_the_middle_of_a_multiline_block_quote ... ok [INFO] [stdout] test tests::test_paragraphs::several_new_lines_inside_block_node_then_text ... ok [INFO] [stdout] test tests::test_menu_state::selecting_multiple_nodes_updates_reversed_actions ... ok [INFO] [stdout] test tests::test_paragraphs::text_typed_after_line_break_goes_into_last_paragraph ... ok [INFO] [stdout] test tests::test_paragraphs::type_after_adding_line_break ... ok [INFO] [stdout] test tests::test_paragraphs::setting_html_with_line_blockquote_that_contains_a_newline ... ok [INFO] [stdout] test tests::test_remove_links::remove_link_with_cursor_at_end ... ok [INFO] [stdout] test tests::test_paragraphs::test_replace_text_in_first_line_with_line_break ... ok [INFO] [stdout] test tests::test_remove_links::remove_link_that_contains_a_container ... ok [INFO] [stdout] test tests::test_remove_links::remove_link_on_a_non_link_node ... ok [INFO] [stdout] test tests::test_remove_links::remove_link_with_cursor_in_the_middle ... ok [INFO] [stdout] test tests::test_remove_links::remove_link_with_cursor_at_the_start ... ok [INFO] [stdout] test tests::test_remove_links::remove_partially_selected_link ... ok [INFO] [stdout] test tests::test_remove_links::remove_multiple_partially_selected_links ... ok [INFO] [stdout] test tests::test_remove_links::remove_link_in_selected_container ... ok [INFO] [stdout] test tests::test_remove_links::remove_selected_link ... ok [INFO] [stdout] test tests::test_remove_links::remove_link_between_text_nodes_joins ... ok [INFO] [stdout] test tests::test_remove_links::remove_multiple_selected_links ... ok [INFO] [stdout] test tests::test_selection::selecting_ascii_characters ... ok [INFO] [stdout] test tests::test_remove_links::remove_selected_link_and_undo ... ok [INFO] [stdout] test tests::test_remove_links::remove_multiple_partially_selected_links_in_different_containers ... ok [INFO] [stdout] test tests::test_selection::selecting_single_utf16_code_unit_characters ... ok [INFO] [stdout] test tests::test_selection::selecting_within_a_tag ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_html ... ok [INFO] [stdout] test tests::test_selection::selecting_creates_a_selection_update ... ok [INFO] [stdout] test tests::test_selection::selecting_multiple_utf16_code_unit_characters ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_html_invalid ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_html_multiple_br ... ok [INFO] [stdout] test tests::test_set_content::clear ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_html_containing_newlines ... ok [INFO] [stdout] test tests::test_selection::selecting_complex_characters ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_html_paragraphs ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_html_moves_cursor_to_the_end ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_html_paragraphs_containing_newline ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_markdown ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_markdown_codeblock_with_newlines_in_the_middle ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_markdown_blockquote ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_markdown_codeblock_with_newlines ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_markdown_blockquote_multiline ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_html_single_br ... ok [INFO] [stdout] test tests::test_set_content::set_contents_with_line_break_in_code_block ... ok [INFO] [stdout] test tests::test_suggestions::test_replace_text_suggestion ... ok [INFO] [stdout] test tests::test_to_markdown::at_room_mention_for_message ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_html_paragraphs_and_inline ... ok [INFO] [stdout] test tests::test_to_markdown::at_room_mention_for_composer ... ok [INFO] [stdout] test tests::test_to_markdown::room_mention_for_message ... ok [INFO] [stdout] test tests::test_to_markdown::room_mention_for_composer ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_markdown_multiple_new_lines ... ok [INFO] [stdout] test tests::test_set_content::set_content_from_markdown_one_new_line ... ok [INFO] [stdout] test tests::test_to_markdown::text_with_code_block ... ok [INFO] [stdout] test tests::test_to_markdown::text_with_ascii_punctuation ... ok [INFO] [stdout] test tests::test_to_markdown::list_ordered_and_unordered ... ok [INFO] [stdout] test tests::test_to_markdown::text ... ok [INFO] [stdout] test tests::test_to_markdown::list_ordered ... ok [INFO] [stdout] test tests::test_to_markdown::list_unordered ... ok [INFO] [stdout] test tests::test_to_markdown::link ... ok [INFO] [stdout] test tests::test_to_markdown::text_with_underline ... ok [INFO] [stdout] test tests::test_to_markdown::user_mention_for_message ... ok [INFO] [stdout] test tests::test_to_markdown::user_mention_for_composer ... ok [INFO] [stdout] test tests::test_to_message_html::only_outputs_href_attribute_on_user_mention ... ok [INFO] [stdout] test tests::test_to_message_html::only_outputs_href_attribute_on_room_mention_and_uses_mx_id ... ok [INFO] [stdout] test tests::test_to_markdown::text_with_linebreaks ... ok [INFO] [stdout] test tests::test_to_message_html::outputs_paragraphs_as_line_breaks ... ok [INFO] [stdout] test tests::test_to_message_html::only_outputs_href_inner_text_for_at_room_mention ... ok [INFO] [stdout] test tests::test_to_message_html::outputs_paragraphs_content_without_linebreak_when_followed_by_block ... ok [INFO] [stdout] test tests::test_to_plain_text::blocks ... ok [INFO] [stdout] test tests::test_to_markdown::text_with_italic_and_bold ... ok [INFO] [stdout] test tests::test_to_markdown::text_with_italic ... ok [INFO] [stdout] test tests::test_to_plain_text::list_ordered ... ok [INFO] [stdout] test tests::test_to_plain_text::list_ordered_and_unordered ... ok [INFO] [stdout] test tests::test_to_plain_text::mention ... ok [INFO] [stdout] test tests::test_to_plain_text::list_unordered ... ok [INFO] [stdout] test tests::test_to_plain_text::link ... ok [INFO] [stdout] test tests::test_to_plain_text::list_ordered_indented ... ok [INFO] [stdout] test tests::test_to_plain_text::text ... ok [INFO] [stdout] test tests::test_to_plain_text::list_unordered_indented ... ok [INFO] [stdout] test tests::test_to_markdown::text_with_strikethrough ... ok [INFO] [stdout] test tests::test_to_markdown::text_with_bold ... ok [INFO] [stdout] test tests::test_to_plain_text::text_with_underline ... ok [INFO] [stdout] test tests::test_to_plain_text::text_with_inline_code ... ok [INFO] [stdout] test tests::test_to_raw_text::multi_code_unit_characters_convert_to_raw_text_unchanged ... ok [INFO] [stdout] test tests::test_to_raw_text::empty_text_converts_to_empty_raw_string ... ok [INFO] [stdout] test tests::test_to_plain_text::text_with_strikethrough ... ok [INFO] [stdout] test tests::test_to_raw_text::simple_text_converts_directly_to_raw_version ... ok [INFO] [stdout] test tests::test_to_plain_text::text_with_linebreaks ... ok [INFO] [stdout] test tests::test_to_markdown::text_with_inline_code ... ok [INFO] [stdout] test tests::test_to_tree::br_within_text_shows_up_in_tree ... ok [INFO] [stdout] test tests::test_to_plain_text::text_with_italic_and_bold ... ok [INFO] [stdout] test tests::test_to_tree::mention_shows_up_in_tree ... ok [INFO] [stdout] test tests::test_undo_redo::backspacing_text_creates_previous_state ... ok [INFO] [stdout] test tests::test_to_tree::link_href_shows_up_in_tree ... ok [INFO] [stdout] test tests::test_undo_redo::can_undo_adding_line_break ... ok [INFO] [stdout] test tests::test_undo_redo::can_undo_pressing_enter ... ok [INFO] [stdout] test tests::test_undo_redo::can_undo_with_selection ... ok [INFO] [stdout] test tests::test_to_tree::single_nested_tag_produces_tree ... ok [INFO] [stdout] test tests::test_to_tree::multiple_tags_nested_inside_one_produce_tree ... ok [INFO] [stdout] test tests::test_undo_redo::redo_pops_state_from_next_states ... ok [INFO] [stdout] test tests::test_undo_redo::deleting_text_creates_previous_state ... ok [INFO] [stdout] test tests::test_undo_redo::deleting_a_selection_with_enter_only_adds_one_to_undo_stack ... ok [INFO] [stdout] test tests::test_undo_redo::formatting_text_creates_previous_state ... ok [INFO] [stdout] test tests::test_undo_redo::inserting_text_creates_previous_state ... ok [INFO] [stdout] test tests::test_undo_redo::redoing_action_adds_popped_state_to_previous_states ... ok [INFO] [stdout] test tests::test_undo_redo::undoing_action_adds_popped_state_to_next_states ... ok [INFO] [stdout] test tests::test_undo_redo::undoing_enter_only_undoes_one ... ok [INFO] [stdout] test tests::test_undo_redo::replacing_text_with_newlines_only_adds_one_to_undo_stack ... ok [INFO] [stdout] test tests::test_undo_redo::undoing_action_restores_previous_state ... ok [INFO] [stdout] test tests::test_undo_redo::undoing_action_removes_last_previous_state ... ok [INFO] [stdout] test tests::test_to_plain_text::text_with_bold ... ok [INFO] [stdout] test tests::test_undo_redo::undoing_restores_toggled_format_types ... ok [INFO] [stdout] test tests::test_to_plain_text::text_with_italic ... ok [INFO] [stdout] test tests::test_to_raw_text::tags_are_stripped_from_raw_text ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1059 passed; 0 failed; 10 ignored; 0 measured; 0 filtered out; finished in 8.54s [INFO] [stdout] [INFO] [stderr] Running tests/tests.rs (/opt/rustwide/target/debug/deps/tests-f292a5e32d25e2fd) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test can_instantiate_a_model_and_call_methods ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests matrix_mentions [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests wysiwyg [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test crates/wysiwyg/src/composer_model/example_format.rs - composer_model::example_format::ComposerModel::from_example_format (line 67) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.85s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "d5c89e0cf931a42c61fcf8bb22a369fd3cb611a77e91f405805285764bdc6a89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d5c89e0cf931a42c61fcf8bb22a369fd3cb611a77e91f405805285764bdc6a89", kill_on_drop: false }` [INFO] [stdout] d5c89e0cf931a42c61fcf8bb22a369fd3cb611a77e91f405805285764bdc6a89