Fix fix_formatted_text test.
This commit is contained in:
parent
73f945bd8b
commit
31a4608463
@ -6,6 +6,8 @@
|
|||||||
//
|
//
|
||||||
#include "td/telegram/MessageEntity.h"
|
#include "td/telegram/MessageEntity.h"
|
||||||
|
|
||||||
|
#include "td/telegram/UserId.h"
|
||||||
|
|
||||||
#include "td/utils/algorithm.h"
|
#include "td/utils/algorithm.h"
|
||||||
#include "td/utils/common.h"
|
#include "td/utils/common.h"
|
||||||
#include "td/utils/format.h"
|
#include "td/utils/format.h"
|
||||||
@ -832,6 +834,7 @@ TEST(MessageEntities, fix_formatted_text) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
str = "aba \r\n caba ";
|
str = "aba \r\n caba ";
|
||||||
|
td::UserId user_id(static_cast<td::int64>(1));
|
||||||
for (td::int32 length = 1; length <= 3; length++) {
|
for (td::int32 length = 1; length <= 3; length++) {
|
||||||
for (td::int32 offset = 0; static_cast<size_t>(offset + length) <= str.size(); offset++) {
|
for (td::int32 offset = 0; static_cast<size_t>(offset + length) <= str.size(); offset++) {
|
||||||
for (auto type : {td::MessageEntity::Type::Bold, td::MessageEntity::Type::Url, td::MessageEntity::Type::TextUrl,
|
for (auto type : {td::MessageEntity::Type::Bold, td::MessageEntity::Type::Url, td::MessageEntity::Type::TextUrl,
|
||||||
@ -855,12 +858,22 @@ TEST(MessageEntities, fix_formatted_text) {
|
|||||||
|
|
||||||
td::vector<td::MessageEntity> entities;
|
td::vector<td::MessageEntity> entities;
|
||||||
entities.emplace_back(type, offset, length);
|
entities.emplace_back(type, offset, length);
|
||||||
|
if (type == td::MessageEntity::Type::TextUrl) {
|
||||||
|
entities.back().argument = "t.me";
|
||||||
|
} else if (type == td::MessageEntity::Type::MentionName) {
|
||||||
|
entities.back().user_id = user_id;
|
||||||
|
}
|
||||||
td::vector<td::MessageEntity> fixed_entities;
|
td::vector<td::MessageEntity> fixed_entities;
|
||||||
if (fixed_length > 0) {
|
if (fixed_length > 0) {
|
||||||
for (auto i = 0; i < length; i++) {
|
for (auto i = 0; i < length; i++) {
|
||||||
if (!td::is_space(str[offset + i]) || type == td::MessageEntity::Type::TextUrl ||
|
if (!td::is_space(str[offset + i]) || type == td::MessageEntity::Type::TextUrl ||
|
||||||
type == td::MessageEntity::Type::MentionName) {
|
type == td::MessageEntity::Type::MentionName) {
|
||||||
fixed_entities.emplace_back(type, fixed_offset, fixed_length);
|
fixed_entities.emplace_back(type, fixed_offset, fixed_length);
|
||||||
|
if (type == td::MessageEntity::Type::TextUrl) {
|
||||||
|
fixed_entities.back().argument = "t.me";
|
||||||
|
} else if (type == td::MessageEntity::Type::MentionName) {
|
||||||
|
fixed_entities.back().user_id = user_id;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -905,9 +918,11 @@ TEST(MessageEntities, fix_formatted_text) {
|
|||||||
for (td::int32 offset2 = 0; offset2 <= 8 - length2; offset2++) {
|
for (td::int32 offset2 = 0; offset2 <= 8 - length2; offset2++) {
|
||||||
if (offset != offset2) {
|
if (offset != offset2) {
|
||||||
td::vector<td::MessageEntity> entities;
|
td::vector<td::MessageEntity> entities;
|
||||||
entities.emplace_back(td::MessageEntity::Type::TextUrl, offset, length);
|
entities.emplace_back(td::MessageEntity::Type::TextUrl, offset, length, "t.me");
|
||||||
entities.emplace_back(td::MessageEntity::Type::TextUrl, offset2, length2);
|
entities.emplace_back(td::MessageEntity::Type::TextUrl, offset2, length2, "t.me");
|
||||||
|
entities.emplace_back(td::MessageEntity::Type::TextUrl, offset2 + length2, 1);
|
||||||
td::vector<td::MessageEntity> fixed_entities = entities;
|
td::vector<td::MessageEntity> fixed_entities = entities;
|
||||||
|
fixed_entities.pop_back();
|
||||||
std::sort(fixed_entities.begin(), fixed_entities.end());
|
std::sort(fixed_entities.begin(), fixed_entities.end());
|
||||||
if (fixed_entities[0].offset + fixed_entities[0].length > fixed_entities[1].offset) {
|
if (fixed_entities[0].offset + fixed_entities[0].length > fixed_entities[1].offset) {
|
||||||
fixed_entities.pop_back();
|
fixed_entities.pop_back();
|
||||||
|
Loading…
Reference in New Issue
Block a user