From e80234d20a7b1362dae1ae40dce3c5c0d191aae0 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 8 Jan 2020 09:36:05 +0000 Subject: [PATCH] Corrected test --- include/enotify.php | 122 +++++++++++++++------------- tests/src/Content/Text/HTMLTest.php | 4 +- 2 files changed, 67 insertions(+), 59 deletions(-) diff --git a/include/enotify.php b/include/enotify.php index ced0a285e..9206e32aa 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -154,6 +154,7 @@ function notification($params) // Check to see if there was already a tag notify or comment notify for this post. // If so don't create a second notification + /// @todo In the future we should store the notification with the highest "value" and replace notifications $condition = ['type' => [NOTIFY_TAGSELF, NOTIFY_COMMENT, NOTIFY_SHARE], 'link' => $params['link'], 'uid' => $params['uid']]; if (DBA::exists('notify', $condition)) { @@ -166,16 +167,68 @@ function notification($params) $item = Item::selectFirstForUser($params['uid'], Item::ITEM_FIELDLIST, ['id' => $parent_id, 'deleted' => false]); } + if (empty($item)) { + return false; + } + $item_post_type = Item::postType($item); $itemlink = $item['plink']; + // "their post" + if ($item['author-link'] == $params['source_link']) { + if ($params['activity']['explicit_tagged']) { + $dest_str = $l10n->t('%1$s tagged you on [url=%2$s]their %3$s[/url]', + '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', + $itemlink, + $item_post_type + ); + } elseif ($params['activity']['origin_comment']) { + $dest_str = $l10n->t('%1$s answered you on [url=%2$s]their %3$s[/url]', + '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', + $itemlink, + $item_post_type + ); + } else { + $dest_str = $l10n->t('%1$s commented on [url=%2$s]their %3$s[/url]', + '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', + $itemlink, + $item_post_type + ); + } + // "your post" + } elseif ($params['activity']['origin_thread']) { + if ($params['activity']['explicit_tagged']) { + $dest_str = $l10n->t('%1$s tagged you on [url=%2$s]your %3$s[/url]', + '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', + $itemlink, + $item_post_type + ); + } elseif ($params['activity']['origin_comment']) { + $dest_str = $l10n->t('%1$s answered you on [url=%2$s]your %3$s[/url]', + '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', + $itemlink, + $item_post_type + ); + } else { + $dest_str = $l10n->t('%1$s commented on [url=%2$s]your %3$s[/url]', + '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', + $itemlink, + $item_post_type + ); + } // "a post" - if ($params['type'] == NOTIFY_TAGSELF) { + } elseif ($params['activity']['explicit_tagged']) { $dest_str = $l10n->t('%1$s tagged you on [url=%2$s]a %3$s[/url]', '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', $itemlink, $item_post_type ); + } elseif ($params['activity']['origin_comment']) { + $dest_str = $l10n->t('%1$s answered you on [url=%2$s]a %3$s[/url]', + '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', + $itemlink, + $item_post_type + ); } else { $dest_str = $l10n->t('%1$s commented on [url=%2$s]a %3$s[/url]', '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', @@ -184,64 +237,11 @@ function notification($params) ); } - // "George Bull's post" - if (DBA::isResult($item)) { - if ($params['type'] == NOTIFY_TAGSELF) { - $dest_str = $l10n->t('%1$s tagged you on [url=%2$s]%3$s\'s %4$s[/url]', - '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', - $itemlink, - $item['author-name'], - $item_post_type - ); - } else { - $dest_str = $l10n->t('%1$s commented on [url=%2$s]%3$s\'s %4$s[/url]', - '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', - $itemlink, - $item['author-name'], - $item_post_type - ); - } - } - - // "your post" - if (DBA::isResult($item) && $item['owner-id'] == $item['author-id'] && $item['wall']) { - if ($params['type'] == NOTIFY_TAGSELF) { - $dest_str = $l10n->t('%1$s tagged you on [url=%2$s]your %3$s[/url]', - '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', - $itemlink, - $item_post_type - ); - } else { - $dest_str = $l10n->t('%1$s commented on [url=%2$s]your %3$s[/url]', - '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', - $itemlink, - $item_post_type - ); - } - } - - // "their post" - if (DBA::isResult($item) && $item['author-link'] == $params['source_link']) { - if ($params['type'] == NOTIFY_TAGSELF) { - $dest_str = $l10n->t('%1$s tagged you on [url=%2$s]their %3$s[/url]', - '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', - $itemlink, - $item_post_type - ); - } else { - $dest_str = $l10n->t('%1$s commented on [url=%2$s]their %3$s[/url]', - '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', - $itemlink, - $item_post_type - ); - } - } - // Some mail software relies on subject field for threading. // So, we cannot have different subjects for notifications of the same thread. // Before this we have the name of the replier on the subject rendering // different subjects for messages on the same thread. - if ($params['type'] == NOTIFY_TAGSELF) { + if ($params['activity']['explicit_tagged']) { $subject = $l10n->t('[Friendica:Notify] %s tagged you', $params['source_name']); $preamble = $l10n->t('%1$s tagged you at %2$s', $params['source_name'], $sitename); @@ -713,6 +713,14 @@ function check_item_notification($itemid, $uid, $notification_type) { $params['source_link'] = $item['author-link']; $params['source_photo'] = $item['author-avatar']; + // Set the activity flags + $params['activity']['explicit_tagged'] = ($notification_type & UserItem::NOTIF_EXPLICIT_TAGGED); + $params['activity']['implicit_tagged'] = ($notification_type & UserItem::NOTIF_IMPLICIT_TAGGED); + $params['activity']['origin_comment'] = ($notification_type & UserItem::NOTIF_DIRECT_COMMENT); + $params['activity']['origin_thread'] = ($notification_type & UserItem::NOTIF_THREAD_COMMENT); + $params['activity']['thread_comment'] = ($notification_type & UserItem::NOTIF_COMMENT_PARTICIPATION); + $params['activity']['thread_activity'] = ($notification_type & UserItem::NOTIF_ACTIVITY_PARTICIPATION); + if ($notification_type & UserItem::NOTIF_SHARED) { $params['type'] = NOTIFY_SHARE; $params['verb'] = Activity::TAG; @@ -720,8 +728,8 @@ function check_item_notification($itemid, $uid, $notification_type) { $params['type'] = NOTIFY_TAGSELF; $params['verb'] = Activity::TAG; } elseif ($notification_type & UserItem::NOTIF_IMPLICIT_TAGGED) { - $params['type'] = NOTIFY_TAGSELF; - $params['verb'] = Activity::TAG; + $params['type'] = NOTIFY_COMMENT; + $params['verb'] = Activity::POST; } elseif ($notification_type & UserItem::NOTIF_THREAD_COMMENT) { $params['type'] = NOTIFY_COMMENT; $params['verb'] = Activity::POST; diff --git a/tests/src/Content/Text/HTMLTest.php b/tests/src/Content/Text/HTMLTest.php index 027f6ddb1..8ddb83c44 100644 --- a/tests/src/Content/Text/HTMLTest.php +++ b/tests/src/Content/Text/HTMLTest.php @@ -59,8 +59,8 @@ class HTMLTest extends MockedTest 'html' => '', ], 'bug-8075-html-tags' => [ - 'expectedBBCode' => " I don't understand tests", - 'html' => " I don't understand tests", + 'expectedBBCode' => " I don't understand tests", + 'html' => " I don't understand tests", ], ]; }