Skip to content

Commit 0b45d55

Browse files
committed
Add test for FindAndReplace scrolling to match
1 parent a5b6ff3 commit 0b45d55

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

plugins/prism-line-numbers.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ code-input .line-numbers .line-numbers-rows {
3232
/* Things with padding when instructions are present */
3333
code-input:not(:has(.code-input_keyboard-navigation-instructions:empty)):has(textarea:focus):not(.code-input_mouse-focused) .line-numbers .line-numbers-rows {
3434
top: calc(var(--padding) + 3em);
35-
}
35+
}

tests/tester.js

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ console.log("I've got another line!", 2 < 3, "should be true.");
398398
textarea.selectionStart = 0;
399399
textarea.selectionEnd = textarea.value.length;
400400
backspace(textarea);
401-
addText(textarea, "// hello /\\S/g\nhe('llo', /\\s/g);\nhello");
401+
addText(textarea, "// hello /\\S/g\nhe('llo', /\\s/g);\nhello\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\na very very very very very very very very very very very very long line with many many many many many many many many many many many words\nline\nline\nline\nline\nline\nline\nline");
402402
textarea.selectionStart = textarea.selectionEnd = 0; // So focuses on first match
403403

404404
await waitAsync(50); // Wait for highlighting so text updates
@@ -437,7 +437,7 @@ console.log("I've got another line!", 2 < 3, "should be true.");
437437
replaceInput.value = "do('hello";
438438
replaceButton.click();
439439
await waitAsync(50); // Wait for buttons to work
440-
assertEqual("FindAndReplace", "Replaces Once Correctly", textarea.value, "// hello /\\S/g\ndo('hello', /\\s/g);\nhello");
440+
assertEqual("FindAndReplace", "Replaces Once Correctly", textarea.value, "// hello /\\S/g\ndo('hello', /\\s/g);\nhello\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\na very very very very very very very very very very very very long line with many many many many many many many many many many many words\nline\nline\nline\nline\nline\nline\nline");
441441
nextMatchButton.click(); // Back to first match
442442

443443
// Exit find input box
@@ -458,7 +458,26 @@ console.log("I've got another line!", 2 < 3, "should be true.");
458458

459459
replaceInput.value = "hi";
460460
replaceAllButton.click();
461-
assertEqual("FindAndReplace", "Replaces All Correctly", textarea.value, "// hi /\\S/g\ndo('hi', /\\s/g);\nhi");
461+
assertEqual("FindAndReplace", "Replaces All Correctly", textarea.value, "// hi /\\S/g\ndo('hi', /\\s/g);\nhi\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\nline\na very very very very very very very very very very very very long line with many many many many many many many many many many many words\nline\nline\nline\nline\nline\nline\nline");
462+
463+
findInput.value = "line";
464+
regExpCheckbox.click(); // Now no regex
465+
await waitAsync(200); // Wait for value to update
466+
467+
// Go to "line" on very long line
468+
codeInputElement.style = "height: 100px; width: 1000px;";
469+
previousMatchButton.click();
470+
previousMatchButton.click();
471+
previousMatchButton.click();
472+
previousMatchButton.click();
473+
previousMatchButton.click();
474+
previousMatchButton.click();
475+
previousMatchButton.click();
476+
previousMatchButton.click();
477+
478+
await waitAsync(200); // Wait for highlighting so matches update
479+
testAssertion("FindAndReplace", "Scrolls to Match Correctly", confirm("Is the match on the very long line highlighted orange and near the centre of the element?"), "user-judged");
480+
codeInputElement.style = "";
462481

463482
// Exit find input box
464483
codeInputElement.querySelector(".code-input_find-and-replace_dialog").dispatchEvent(new KeyboardEvent("keydown", { "key": "Escape" }));

0 commit comments

Comments
 (0)