Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
23.88% covered (danger)
23.88%
16 / 67
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
phpbb_privmsgs_delete_user_pms_test
23.88% covered (danger)
23.88%
16 / 67
66.67% covered (warning)
66.67%
2 / 3
6.97
0.00% covered (danger)
0.00%
0 / 1
 getDataSet
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 delete_user_pms_data
0.00% covered (danger)
0.00%
0 / 51
0.00% covered (danger)
0.00%
0 / 1
2
 test_delete_user_pms
100.00% covered (success)
100.00%
15 / 15
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3*
4* This file is part of the phpBB Forum Software package.
5*
6* @copyright (c) phpBB Limited <https://www.phpbb.com>
7* @license GNU General Public License, version 2 (GPL-2.0)
8*
9* For full copyright and license information, please see
10* the docs/CREDITS.txt file.
11*
12*/
13
14require_once __DIR__ . '/../../phpBB/includes/functions_privmsgs.php';
15
16class phpbb_privmsgs_delete_user_pms_test extends phpbb_database_test_case
17{
18    public function getDataSet()
19    {
20        return $this->createXMLDataSet(__DIR__.'/fixtures/delete_user_pms.xml');
21    }
22
23    static public function delete_user_pms_data()
24    {
25        return array(
26        //    array(
27        //        (user we delete),
28        //        array(remaining privmsgs ids),
29        //        array(remaining privmsgs_to),
30        //    ),
31            array(
32                2,
33                array(
34                    array('msg_id' => 1),
35                ),
36                array(
37                    array('msg_id' => 1, 'user_id' => 3),
38                ),
39            ),
40            array(
41                3,
42                array(
43                    array('msg_id' => 1),
44                    array('msg_id' => 2),
45                    array('msg_id' => 3),
46                    array('msg_id' => 5),
47                ),
48                array(
49                    array('msg_id' => 1, 'user_id' => 2),
50                    array('msg_id' => 1, 'user_id' => 4),
51                    array('msg_id' => 2, 'user_id' => 2),
52                    array('msg_id' => 2, 'user_id' => 4),
53                    array('msg_id' => 3, 'user_id' => 2),
54                    array('msg_id' => 5, 'user_id' => 2),
55                    array('msg_id' => 5, 'user_id' => 4),
56                ),
57            ),
58            array(
59                5,
60                array(
61                    array('msg_id' => 1),
62                    array('msg_id' => 2),
63                    array('msg_id' => 3),
64                    array('msg_id' => 4),
65                    array('msg_id' => 5),
66                ),
67                array(
68                    array('msg_id' => 1, 'user_id' => 2),
69                    array('msg_id' => 1, 'user_id' => 3),
70                    array('msg_id' => 1, 'user_id' => 4),
71                    array('msg_id' => 2, 'user_id' => 2),
72                    array('msg_id' => 2, 'user_id' => 4),
73                    array('msg_id' => 3, 'user_id' => 2),
74                    array('msg_id' => 4, 'user_id' => 3),
75                    array('msg_id' => 5, 'user_id' => 2),
76                    array('msg_id' => 5, 'user_id' => 3),
77                    array('msg_id' => 5, 'user_id' => 4),
78                ),
79            ),
80        );
81    }
82
83    /**
84    * @dataProvider delete_user_pms_data
85    */
86    public function test_delete_user_pms($delete_user, $remaining_privmsgs, $remaining_privmsgs_to)
87    {
88        global $db, $phpbb_container;
89
90        $db = $this->new_dbal();
91
92        $phpbb_container = new phpbb_mock_container_builder();
93        $phpbb_container->set('notification_manager', new phpbb_mock_notification_manager());
94
95        $storage =  $this->createMock('\phpbb\storage\storage');
96
97        // Works as a workaround for tests
98        $phpbb_container->set('attachment.manager', new \phpbb\attachment\delete(new \phpbb\config\config(array()), $db, new \phpbb_mock_event_dispatcher(), new \phpbb\attachment\resync($db), $storage));
99
100        phpbb_delete_users_pms([$delete_user]);
101
102        $sql = 'SELECT msg_id
103            FROM ' . PRIVMSGS_TABLE;
104        $result = $db->sql_query($sql);
105
106        $this->assertEquals($remaining_privmsgs, $db->sql_fetchrowset($result));
107
108        $sql = 'SELECT msg_id, user_id
109            FROM ' . PRIVMSGS_TO_TABLE;
110        $result = $db->sql_query($sql);
111
112        $this->assertEquals($remaining_privmsgs_to, $db->sql_fetchrowset($result));
113    }
114}