query: add related: combi-field + test
Add a new combination (pseudo) field "related:", which combines "message-id" and "references"
This commit is contained in:
@ -38,6 +38,10 @@ Mu::combi_fields()
|
||||
field_from_id(Field::Id::Cc),
|
||||
field_from_id(Field::Id::Bcc),
|
||||
field_from_id(Field::Id::From)}},
|
||||
CombiField { "related",
|
||||
{ field_from_id(Field::Id::MessageId),
|
||||
field_from_id(Field::Id::References)}
|
||||
},
|
||||
CombiField { "",
|
||||
{ field_from_id(Field::Id::To),
|
||||
field_from_id(Field::Id::Cc),
|
||||
|
||||
@ -217,10 +217,6 @@ Boo!
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static void
|
||||
test_related()
|
||||
{
|
||||
@ -262,7 +258,6 @@ Child
|
||||
TempDir tdir;
|
||||
auto store{make_test_store(tdir.path(), test_msgs, {})};
|
||||
{
|
||||
// direct matches
|
||||
auto qr = store.run_query("msgid:aap@foo.bar", Field::Id::Date,
|
||||
QueryFlags::None);
|
||||
g_assert_true(!!qr);
|
||||
@ -271,7 +266,6 @@ Child
|
||||
}
|
||||
|
||||
{
|
||||
// skip duplicate messages; which one is skipped is arbitrary.
|
||||
auto qr = store.run_query("msgid:aap@foo.bar", Field::Id::Date,
|
||||
QueryFlags::IncludeRelated);
|
||||
g_assert_true(!!qr);
|
||||
@ -280,7 +274,6 @@ Child
|
||||
}
|
||||
|
||||
{
|
||||
// skip duplicate messages; which one is skipped is arbitrary.
|
||||
auto qr = store.run_query("msgid:mies@foo.bar", Field::Id::Date,
|
||||
QueryFlags::IncludeRelated);
|
||||
g_assert_true(!!qr);
|
||||
@ -289,7 +282,6 @@ Child
|
||||
}
|
||||
|
||||
{
|
||||
// skip duplicate messages; which one is skipped is arbitrary.
|
||||
auto qr = store.run_query("ref:aap@foo.bar", Field::Id::Date,
|
||||
QueryFlags::None);
|
||||
g_assert_true(!!qr);
|
||||
@ -297,9 +289,15 @@ Child
|
||||
g_assert_cmpuint(qr->size(), ==, 2);
|
||||
}
|
||||
|
||||
{
|
||||
auto qr = store.run_query("related:aap@foo.bar", Field::Id::Date,
|
||||
QueryFlags::None);
|
||||
g_assert_true(!!qr);
|
||||
g_assert_false(qr->empty());
|
||||
g_assert_cmpuint(qr->size(), ==, 3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_dups_related()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user