public function testUserWasLastToEdit() { $user1 = User::newFromName("WikiPageEntityStoreTestUserWasLastToEdit1"); $user2 = User::newFromName("WikiPageEntityStoreTestUserWasLastToEdit2"); // initial revision $item = new Item(new ItemId('Q42')); $item->setLabel('en', 'one'); $rev1 = $this->repo->saveEntity($item, 'testing 1', $user1, EDIT_NEW); $itemId = $item->getId(); $this->assertTrue($this->repo->userWasLastToEdit($user1, $itemId, $rev1->getRevisionId()), 'user was first and last to edit'); $this->assertFalse($this->repo->userWasLastToEdit($user2, $itemId, $rev1->getRevisionId()), 'user has not edited yet'); // second edit by another user $item = new Item(new ItemId('Q42')); $item->setLabel('en', 'two'); $rev2 = $this->repo->saveEntity($item, 'testing 2', $user2, EDIT_UPDATE); $this->assertFalse($this->repo->userWasLastToEdit($user1, $itemId, $rev1->getRevisionId()), 'original user was no longer last to edit'); $this->assertTrue($this->repo->userWasLastToEdit($user2, $itemId, $rev2->getRevisionId()), 'second user has just edited'); // subsequent edit by the original user $item = new Item(new ItemId('Q42')); $item->setLabel('en', 'three'); $rev3 = $this->repo->saveEntity($item, 'testing 3', $user1, EDIT_UPDATE); $this->assertFalse($this->repo->userWasLastToEdit($user1, $itemId, $rev1->getRevisionId()), 'another user had edited at some point'); $this->assertTrue($this->repo->userWasLastToEdit($user1, $itemId, $rev3->getRevisionId()), 'original user was last to edit'); $this->assertFalse($this->repo->userWasLastToEdit($user2, $itemId, $rev2->getRevisionId()), 'other user was no longer last to edit'); }