Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
03/09/2014 07:59:01 PM (6 years ago)
Author:
boonebgorges
Message:

Disable duplicate notification creation by default, and introduce 'allow_duplicate' param for override

Generally, it's undesirable to have duplicate notifications for a given
user-item-secondary_item-component-action combination (as when, say, someone
mentions you many times in a single message thread). This changeset introduces
duplicate protection, which can be overridden by passing the 'allow_duplicate'
param to bp_notifications_add_notification().

Fixes #5297

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/testcases/notifications/functions.php

    r7813 r8100  
    5353        $this->assertFalse( wp_cache_get( 'all_for_user_' . $u, 'bp_notifications' ) );
    5454    }
     55
     56    /**
     57     * @group bp_notifications_add_notification
     58     */
     59    public function test_bp_notifications_add_notification_no_dupes() {
     60        $args = array(
     61            'user_id' => 5,
     62            'item_id' => 10,
     63            'secondary_item_id' => 25,
     64            'component_name' => 'messages',
     65            'component_action' => 'new_message',
     66        );
     67
     68        $n = $this->factory->notification->create( $args );
     69
     70        $this->assertFalse( bp_notifications_add_notification( $args ) );
     71    }
     72
     73    /**
     74     * @group bp_notifications_add_notification
     75     */
     76    public function test_bp_notifications_add_notification_allow_duplicate() {
     77        $args = array(
     78            'user_id' => 5,
     79            'item_id' => 10,
     80            'secondary_item_id' => 25,
     81            'component_name' => 'messages',
     82            'component_action' => 'new_message',
     83        );
     84
     85        $n = $this->factory->notification->create( $args );
     86
     87        $args['allow_duplicate'] = true;
     88
     89        $this->assertNotEmpty( bp_notifications_add_notification( $args ) );
     90    }
    5591}
Note: See TracChangeset for help on using the changeset viewer.