mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 00:33:44 +08:00
99 lines
2.7 KiB
JavaScript
99 lines
2.7 KiB
JavaScript
import { acceptance } from "helpers/qunit-helpers";
|
|
|
|
acceptance("Composer - Hyperlink", {
|
|
loggedIn: true
|
|
});
|
|
|
|
QUnit.test("add a hyperlink to a reply", async assert => {
|
|
await visit("/t/internationalization-localization/280");
|
|
await click(".topic-post:first-child button.reply");
|
|
await fillIn(".d-editor-input", "This is a link to ");
|
|
|
|
assert.ok(
|
|
!exists(".insert-link.modal-body"),
|
|
"no hyperlink modal by default"
|
|
);
|
|
|
|
await click(".d-editor button.link");
|
|
assert.ok(exists(".insert-link.modal-body"), "hyperlink modal visible");
|
|
|
|
await fillIn(".modal-body .link-url", "google.com");
|
|
await fillIn(".modal-body .link-text", "Google");
|
|
await click(".modal-footer button.btn-primary");
|
|
|
|
assert.equal(
|
|
find(".d-editor-input").val(),
|
|
"This is a link to [Google](http://google.com)",
|
|
"adds link with url and text, prepends 'http://'"
|
|
);
|
|
|
|
assert.ok(
|
|
!exists(".insert-link.modal-body"),
|
|
"modal dismissed after submitting link"
|
|
);
|
|
|
|
await fillIn(".d-editor-input", "Reset textarea contents.");
|
|
|
|
await click(".d-editor button.link");
|
|
await fillIn(".modal-body .link-url", "google.com");
|
|
await fillIn(".modal-body .link-text", "Google");
|
|
await click(".modal-footer button.btn-danger");
|
|
|
|
assert.equal(
|
|
find(".d-editor-input").val(),
|
|
"Reset textarea contents.",
|
|
"adds link with url and text, prepends 'http://'"
|
|
);
|
|
|
|
assert.ok(
|
|
!exists(".insert-link.modal-body"),
|
|
"modal dismissed after cancelling"
|
|
);
|
|
|
|
const textarea = find("#reply-control .d-editor-input")[0];
|
|
textarea.selectionStart = 0;
|
|
textarea.selectionEnd = 6;
|
|
await click(".d-editor button.link");
|
|
|
|
await fillIn(".modal-body .link-url", "somelink.com");
|
|
await click(".modal-footer button.btn-primary");
|
|
|
|
assert.equal(
|
|
find(".d-editor-input").val(),
|
|
"[Reset](http://somelink.com) textarea contents.",
|
|
"adds link to a selected text"
|
|
);
|
|
|
|
await fillIn(".d-editor-input", "");
|
|
|
|
await click(".d-editor button.link");
|
|
await fillIn(".modal-body .link-url", "http://google.com");
|
|
await keyEvent(".modal-body .link-url", "keyup", 32);
|
|
assert.ok(
|
|
!exists(".internal-link-results"),
|
|
"does not show internal links search dropdown when inputting a url"
|
|
);
|
|
|
|
await fillIn(".modal-body .link-url", "local");
|
|
await keyEvent(".modal-body .link-url", "keyup", 32);
|
|
assert.ok(
|
|
exists(".internal-link-results"),
|
|
"shows internal links search dropdown when entering keywords"
|
|
);
|
|
|
|
await keyEvent(".insert-link", "keydown", 40);
|
|
await keyEvent(".insert-link", "keydown", 13);
|
|
|
|
assert.ok(
|
|
!exists(".internal-link-results"),
|
|
"search dropdown dismissed after selecting an internal link"
|
|
);
|
|
|
|
assert.ok(
|
|
find(".link-url")
|
|
.val()
|
|
.includes("http"),
|
|
"replaces link url field with internal link"
|
|
);
|
|
});
|