Remove missed WatchedItem::resetNotificationTimestamp in test
[lhc/web/wiklou.git] / tests / phpunit / includes / WatchedItemIntegrationTest.php
1 <?php
2
3 /**
4 * @author Addshore
5 *
6 * @group Database
7 *
8 * @covers WatchedItem
9 */
10 class WatchedItemIntegrationTest extends MediaWikiTestCase {
11
12 public function setUp() {
13 parent::setUp();
14 self::$users['WatchedItemIntegrationTestUser']
15 = new TestUser( 'WatchedItemIntegrationTestUser' );
16
17 $this->hideDeprecated( 'WatchedItem::fromUserTitle' );
18 $this->hideDeprecated( 'WatchedItem::addWatch' );
19 $this->hideDeprecated( 'WatchedItem::removeWatch' );
20 $this->hideDeprecated( 'WatchedItem::isWatched' );
21 $this->hideDeprecated( 'WatchedItem::duplicateEntries' );
22 $this->hideDeprecated( 'WatchedItem::batchAddWatch' );
23 }
24
25 private function getUser() {
26 return self::$users['WatchedItemIntegrationTestUser']->getUser();
27 }
28
29 public function testWatchAndUnWatchItem() {
30
31 $user = $this->getUser();
32 $title = Title::newFromText( 'WatchedItemIntegrationTestPage' );
33 // Cleanup after previous tests
34 WatchedItem::fromUserTitle( $user, $title )->removeWatch();
35
36 $this->assertFalse(
37 WatchedItem::fromUserTitle( $user, $title )->isWatched(),
38 'Page should not initially be watched'
39 );
40 WatchedItem::fromUserTitle( $user, $title )->addWatch();
41 $this->assertTrue(
42 WatchedItem::fromUserTitle( $user, $title )->isWatched(),
43 'Page should be watched'
44 );
45 WatchedItem::fromUserTitle( $user, $title )->removeWatch();
46 $this->assertFalse(
47 WatchedItem::fromUserTitle( $user, $title )->isWatched(),
48 'Page should be unwatched'
49 );
50 }
51
52 public function testUpdateAndResetNotificationTimestamp() {
53 $user = $this->getUser();
54 $otherUser = ( new TestUser( 'WatchedItemIntegrationTestUser_otherUser' ) )->getUser();
55 $title = Title::newFromText( 'WatchedItemIntegrationTestPage' );
56 WatchedItem::fromUserTitle( $user, $title )->addWatch();
57 $this->assertNull( WatchedItem::fromUserTitle( $user, $title )->getNotificationTimestamp() );
58
59 EmailNotification::updateWatchlistTimestamp( $otherUser, $title, '20150202010101' );
60 $this->assertEquals(
61 '20150202010101',
62 WatchedItem::fromUserTitle( $user, $title )->getNotificationTimestamp()
63 );
64
65 WatchedItem::fromUserTitle( $user, $title )->resetNotificationTimestamp();
66 $this->assertNull( WatchedItem::fromUserTitle( $user, $title )->getNotificationTimestamp() );
67 }
68
69 public function testDuplicateAllAssociatedEntries() {
70 $user = $this->getUser();
71 $titleOld = Title::newFromText( 'WatchedItemIntegrationTestPageOld' );
72 $titleNew = Title::newFromText( 'WatchedItemIntegrationTestPageNew' );
73 WatchedItem::fromUserTitle( $user, $titleOld->getSubjectPage() )->addWatch();
74 WatchedItem::fromUserTitle( $user, $titleOld->getTalkPage() )->addWatch();
75 // Cleanup after previous tests
76 WatchedItem::fromUserTitle( $user, $titleNew->getSubjectPage() )->removeWatch();
77 WatchedItem::fromUserTitle( $user, $titleNew->getTalkPage() )->removeWatch();
78
79 WatchedItem::duplicateEntries( $titleOld, $titleNew );
80
81 $this->assertTrue(
82 WatchedItem::fromUserTitle( $user, $titleOld->getSubjectPage() )->isWatched()
83 );
84 $this->assertTrue(
85 WatchedItem::fromUserTitle( $user, $titleOld->getTalkPage() )->isWatched()
86 );
87 $this->assertTrue(
88 WatchedItem::fromUserTitle( $user, $titleNew->getSubjectPage() )->isWatched()
89 );
90 $this->assertTrue(
91 WatchedItem::fromUserTitle( $user, $titleNew->getTalkPage() )->isWatched()
92 );
93 }
94
95 public function testIsWatched_falseOnNotAllowed() {
96 $user = $this->getUser();
97 $title = Title::newFromText( 'WatchedItemIntegrationTestPage' );
98 WatchedItem::fromUserTitle( $user, $title )->addWatch();
99
100 $this->assertTrue( WatchedItem::fromUserTitle( $user, $title )->isWatched() );
101 $user->mRights = [];
102 $this->assertFalse( WatchedItem::fromUserTitle( $user, $title )->isWatched() );
103 }
104
105 public function testGetNotificationTimestamp_falseOnNotAllowed() {
106 $user = $this->getUser();
107 $title = Title::newFromText( 'WatchedItemIntegrationTestPage' );
108 WatchedItem::fromUserTitle( $user, $title )->addWatch();
109 WatchedItem::fromUserTitle( $user, $title )->resetNotificationTimestamp();
110
111 $this->assertEquals(
112 null,
113 WatchedItem::fromUserTitle( $user, $title )->getNotificationTimestamp()
114 );
115 $user->mRights = [];
116 $this->assertFalse( WatchedItem::fromUserTitle( $user, $title )->getNotificationTimestamp() );
117 }
118
119 public function testRemoveWatch_falseOnNotAllowed() {
120 $user = $this->getUser();
121 $title = Title::newFromText( 'WatchedItemIntegrationTestPage' );
122 WatchedItem::fromUserTitle( $user, $title )->addWatch();
123
124 $previousRights = $user->mRights;
125 $user->mRights = [];
126 $this->assertFalse( WatchedItem::fromUserTitle( $user, $title )->removeWatch() );
127 $user->mRights = $previousRights;
128 $this->assertTrue( WatchedItem::fromUserTitle( $user, $title )->removeWatch() );
129 }
130
131 public function testGetNotificationTimestamp_falseOnNotWatched() {
132 $user = $this->getUser();
133 $title = Title::newFromText( 'WatchedItemIntegrationTestPage' );
134
135 WatchedItem::fromUserTitle( $user, $title )->removeWatch();
136 $this->assertFalse( WatchedItem::fromUserTitle( $user, $title )->isWatched() );
137
138 $this->assertFalse( WatchedItem::fromUserTitle( $user, $title )->getNotificationTimestamp() );
139 }
140
141 }