ok plain: terms ok plain: no operators ok full: from ok full: subject phrase ok full: has_attachment ok full: is_unread ok full: after ok full: free term kept ok full: has_operators ok unbalanced quote ok empty op: no from ok empty op: no subject ok empty op: no operators flagged ok bad date: after null ok bad date: token becomes text ok fr date ok newer_than sets after ok older_than sets before ok unknown op kept as text ok unknown op: no operators flagged ok is:read -> is_unread false ok is:starred ok folder alias ok since alias -> after ok until alias -> before ok kql from ok kql subject grouped ok kql hasAttachments ok kql isRead:false ok kql received>= ok kql free term ok kql joined by AND ok kql no double quote ok kql no stray colon in value ok imap FROM ok imap SUBJECT ok imap UNSEEN ok imap SINCE ok imap TEXT ok imap empty -> ALL ok imap no unescaped inner quote ---- 41 ok, 0 FAIL