2016-12-08 16:08:44 -05:00
|
|
|
import { acceptance } from "helpers/qunit-helpers";
|
|
|
|
|
|
|
|
acceptance("Composer topic featured links", {
|
|
|
|
loggedIn: true,
|
|
|
|
settings: {
|
2017-05-18 12:32:35 -04:00
|
|
|
topic_featured_link_enabled: true,
|
2018-02-01 00:16:14 -05:00
|
|
|
max_topic_title_length: 80,
|
|
|
|
enable_markdown_linkify: true,
|
2016-12-08 16:08:44 -05:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2017-06-14 13:57:58 -04:00
|
|
|
QUnit.test("onebox with title", assert => {
|
2016-12-08 16:08:44 -05:00
|
|
|
visit("/");
|
|
|
|
click('#create-topic');
|
|
|
|
fillIn('#reply-title', "http://www.example.com/has-title.html");
|
|
|
|
andThen(() => {
|
2017-06-14 13:57:58 -04:00
|
|
|
assert.ok(find('.d-editor-preview').html().trim().indexOf('onebox') > 0, "it pastes the link into the body and previews it");
|
|
|
|
assert.ok(exists('.d-editor-textarea-wrapper .popup-tip.good'), 'the body is now good');
|
|
|
|
assert.equal(find('.title-input input').val(), "An interesting article", "title is from the oneboxed article");
|
2016-12-08 16:08:44 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2017-06-14 13:57:58 -04:00
|
|
|
QUnit.test("onebox result doesn't include a title", assert => {
|
2016-12-08 16:08:44 -05:00
|
|
|
visit("/");
|
|
|
|
click('#create-topic');
|
|
|
|
fillIn('#reply-title', 'http://www.example.com/no-title.html');
|
|
|
|
andThen(() => {
|
2017-06-14 13:57:58 -04:00
|
|
|
assert.ok(find('.d-editor-preview').html().trim().indexOf('onebox') > 0, "it pastes the link into the body and previews it");
|
|
|
|
assert.ok(exists('.d-editor-textarea-wrapper .popup-tip.good'), 'the body is now good');
|
|
|
|
assert.equal(find('.title-input input').val(), "http://www.example.com/no-title.html", "title is unchanged");
|
2016-12-08 16:08:44 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2017-06-14 13:57:58 -04:00
|
|
|
QUnit.test("no onebox result", assert => {
|
2016-12-08 16:08:44 -05:00
|
|
|
visit("/");
|
|
|
|
click('#create-topic');
|
|
|
|
fillIn('#reply-title', "http://www.example.com/nope-onebox.html");
|
|
|
|
andThen(() => {
|
2017-06-14 13:57:58 -04:00
|
|
|
assert.ok(find('.d-editor-preview').html().trim().indexOf('onebox') > 0, "it pastes the link into the body and previews it");
|
|
|
|
assert.ok(exists('.d-editor-textarea-wrapper .popup-tip.good'), 'link is pasted into body');
|
|
|
|
assert.equal(find('.title-input input').val(), "http://www.example.com/nope-onebox.html", "title is unchanged");
|
2016-12-08 16:08:44 -05:00
|
|
|
});
|
|
|
|
});
|
2017-02-08 15:34:42 -05:00
|
|
|
|
2017-06-14 13:57:58 -04:00
|
|
|
QUnit.test("ignore internal links", assert => {
|
2017-02-08 15:34:42 -05:00
|
|
|
visit("/");
|
|
|
|
click('#create-topic');
|
|
|
|
const title = "http://" + window.location.hostname + "/internal-page.html";
|
|
|
|
fillIn('#reply-title', title);
|
|
|
|
andThen(() => {
|
2017-06-14 13:57:58 -04:00
|
|
|
assert.equal(find('.d-editor-preview').html().trim().indexOf('onebox'), -1, "onebox preview doesn't show");
|
|
|
|
assert.equal(find('.d-editor-input').val().length, 0, "link isn't put into the post");
|
|
|
|
assert.equal(find('.title-input input').val(), title, "title is unchanged");
|
2017-02-08 15:34:42 -05:00
|
|
|
});
|
|
|
|
});
|
2017-05-18 12:32:35 -04:00
|
|
|
|
2017-06-14 13:57:58 -04:00
|
|
|
QUnit.test("link is longer than max title length", assert => {
|
2017-05-18 12:32:35 -04:00
|
|
|
visit("/");
|
|
|
|
click('#create-topic');
|
|
|
|
fillIn('#reply-title', "http://www.example.com/has-title-and-a-url-that-is-more-than-80-characters-because-thats-good-for-seo-i-guess.html");
|
|
|
|
andThen(() => {
|
2017-06-14 13:57:58 -04:00
|
|
|
assert.ok(find('.d-editor-preview').html().trim().indexOf('onebox') > 0, "it pastes the link into the body and previews it");
|
|
|
|
assert.ok(exists('.d-editor-textarea-wrapper .popup-tip.good'), 'the body is now good');
|
|
|
|
assert.equal(find('.title-input input').val(), "An interesting article", "title is from the oneboxed article");
|
2017-05-18 12:32:35 -04:00
|
|
|
});
|
2017-12-04 14:21:08 -05:00
|
|
|
});
|
|
|
|
|
|
|
|
QUnit.test("onebox with title but extra words in title field", assert => {
|
|
|
|
visit("/");
|
|
|
|
click('#create-topic');
|
|
|
|
fillIn('#reply-title', "http://www.example.com/has-title.html test");
|
|
|
|
andThen(() => {
|
|
|
|
assert.equal(find('.d-editor-preview').html().trim().indexOf('onebox'), -1, "onebox preview doesn't show");
|
|
|
|
assert.equal(find('.d-editor-input').val().length, 0, "link isn't put into the post");
|
|
|
|
assert.equal(find('.title-input input').val(), "http://www.example.com/has-title.html test", "title is unchanged");
|
|
|
|
});
|
|
|
|
});
|