summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Molenaar <sean@seanmolenaar.eu>2020-12-26 13:09:41 +0100
committerSean Molenaar <SMillerDev@users.noreply.github.com>2020-12-29 14:15:34 +0100
commit27bd54058050a70bd1c9ec8cfcdf42d38541f1b0 (patch)
tree371914f2ada32c4aa7eb7d48b0163ac77a4c6883
parent0f1731833f8b6aea97b0816fe090f6dffacd6fd4 (diff)
Remove PHPunit integration tests
Signed-off-by: Sean Molenaar <sean@seanmolenaar.eu>
-rw-r--r--.github/workflows/integration-tests.yml3
-rw-r--r--CHANGELOG.md3
-rw-r--r--Makefile6
-rw-r--r--phpunit.integration.xml7
-rw-r--r--tests/Integration/Db/FeedMapperTest.php258
-rw-r--r--tests/Integration/Db/ItemMapperTest.php285
-rw-r--r--tests/Integration/Fixtures/FeedFixture.php54
-rw-r--r--tests/Integration/Fixtures/Fixture.php26
-rw-r--r--tests/Integration/Fixtures/FolderFixture.php40
-rw-r--r--tests/Integration/Fixtures/ItemFixture.php56
-rw-r--r--tests/Integration/Fixtures/data/default.php76
-rw-r--r--tests/Integration/Fixtures/data/readitem.php33
-rw-r--r--tests/Integration/IntegrationTest.php225
13 files changed, 3 insertions, 1069 deletions
diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml
index 5843149e9..a3d70337b 100644
--- a/.github/workflows/integration-tests.yml
+++ b/.github/workflows/integration-tests.yml
@@ -135,9 +135,6 @@ jobs:
- name: Prep PHP tests
working-directory: ../server/apps/news
run: make php-test-dependencies
- - name: Integration tests
- working-directory: ../server/apps/news
- run: make integration-test
- name: Feed tests
working-directory: ../server/apps/news
run: make feed-test
diff --git a/CHANGELOG.md b/CHANGELOG.md
index df1055b7e..6874d02f6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,9 @@ The format is almost based on [Keep a Changelog](https://keepachangelog.com/en/1
## [15.1.1] - 2020-12-27
+### Changed
+- Remove PHPunit based integration tests
+
### Fixed
- Argument 2 passed to OCA\News\Db\FeedMapper::find() must be of the type int, string given #996
diff --git a/Makefile b/Makefile
index 434b5c3eb..1da8c697b 100644
--- a/Makefile
+++ b/Makefile
@@ -194,18 +194,12 @@ php-test-dependencies:
unit-test:
./vendor/phpunit/phpunit/phpunit -c phpunit.xml --coverage-clover build/php-unit.clover
-# \Test\TestCase is only allowed to access the db if TRAVIS environment variable is set
-.PHONY: integration-test
-integration-test:
- env TRAVIS=1 ./vendor/phpunit/phpunit/phpunit -c phpunit.integration.xml
-
# Command for running JS and PHP tests. Works for package.json files in the js/
# and root directory. If phpunit is not installed systemwide, a copy is fetched
# from the internet
.PHONY: test
test: php-test-dependencies
$(MAKE) unit-test
- $(MAKE) integration-test
$(MAKE) phpcs
$(MAKE) phpstan
$(MAKE) js-test
diff --git a/phpunit.integration.xml b/phpunit.integration.xml
deleted file mode 100644
index eae19f133..000000000
--- a/phpunit.integration.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<phpunit bootstrap="tests/bootstrap.php" colors="true">
- <testsuites>
- <testsuite name="integration">
- <directory>./tests/Integration</directory>
- </testsuite>
- </testsuites>
-</phpunit>
diff --git a/tests/Integration/Db/FeedMapperTest.php b/tests/Integration/Db/FeedMapperTest.php
deleted file mode 100644
index 803e9260b..000000000
--- a/tests/Integration/Db/FeedMapperTest.php
+++ /dev/null
@@ -1,258 +0,0 @@
-<?php
-/**
- * Nextcloud - News
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Bernhard Posselt <dev@bernhard-posselt.com>
- * @author Daniel Opitz <dev@copynpaste.de>
- * @copyright Bernhard Posselt 2015
- * @copyright Daniel Opitz 2017
- */
-
-namespace OCA\News\Tests\Integration\Db;
-
-use OCA\News\Db\Feed;
-use OCA\News\Tests\Integration\IntegrationTest;
-use OCA\News\Tests\Integration\Fixtures\FeedFixture;
-
-class FeedMapperTest extends IntegrationTest
-{
-
- public function testFind()
- {
- $feed = new FeedFixture();
- $feed = $this->feedMapper->insert($feed);
-
- $fetched = $this->feedMapper->find($this->user, $feed->getId());
-
- $this->assertInstanceOf(Feed::class, $fetched);
- $this->assertEquals($feed->getLink(), $fetched->getLink());
- }
-
- public function testFindNotExisting()
- {
- $this->expectException('OCP\AppFramework\Db\DoesNotExistException');
- $this->feedMapper->find($this->user, 0);
- }
-
-
- public function testFindAll()
- {
- $feeds = [
- [
- 'userId' => $this->user,
- 'items' => []
- ],
- [
- 'userId' => 'john',
- 'items' => []
- ]
- ];
- $this->loadFeedFixtures($feeds);
-
- $fetched = $this->feedMapper->findAll();
-
- $this->assertIsArray($fetched);
- $this->assertCount(2, $fetched);
- $this->assertContainsOnlyInstancesOf(Feed::class, $fetched);
-
- $this->tearDownUser('john');
- }
-
- public function testFindAllEmpty()
- {
- $feeds = $this->feedMapper->findAll();
-
- $this->assertIsArray($feeds);
- $this->assertCount(0, $feeds);
- }
-
-
- public function testFindAllFromUser()
- {
- $feeds = [
- [
- 'userId' => $this->user,
- 'items' => []
- ],
- [
- 'userId' => 'john',
- 'items' => []
- ]
- ];
- $this->loadFeedFixtures($feeds);
-
- $fetched = $this->feedMapper->findAllFromUser($this->user);
-
- $this->assertIsArray($fetched);
- $this->assertCount(1, $fetched);
- $this->assertContainsOnlyInstancesOf(Feed::class, $fetched);
-
- $this->tearDownUser('john');
- }
-
-
- public function testFindAllFromUserNotExisting()
- {
- $fetched = $this->feedMapper->findAllFromUser('notexistinguser');
-
- $this->assertIsArray($fetched);
- $this->assertCount(0, $fetched);
- }
-
-
- public function testFindByUrlHash()
- {
- $feed = new FeedFixture(
- [
- 'urlHash' => 'someTestHash',
- 'title' => 'Some Test Title'
- ]
- );
- $feed = $this->feedMapper->insert($feed);
-
- $fetched = $this->feedMapper->findByUrlHash($feed->getUrlHash(), $this->user);
-
- $this->assertInstanceOf(Feed::class, $fetched);
- $this->assertEquals($feed->getTitle(), $fetched->getTitle());
- }
-
- public function testFindByUrlHashMoreThanOneResult()
- {
- $this->expectException('OCP\AppFramework\Db\MultipleObjectsReturnedException');
- $feed1 = $this->feedMapper->insert(
- new FeedFixture(
- [
- 'urlHash' => 'someTestHash'
- ]
- )
- );
- $feed2 = $this->feedMapper->insert(
- new FeedFixture(
- [
- 'urlHash' => 'someTestHash'
- ]
- )
- );
-
- $this->feedMapper->findByUrlHash($feed1->getUrlHash(), $this->user);
- }
-
- public function testFindByUrlHashNotExisting()
- {
- $this->expectException('OCP\AppFramework\Db\DoesNotExistException');
- $this->feedMapper->findByUrlHash('some random hash', $this->user);
- }
-
-
- public function testDelete()
- {
- $this->loadFixtures('default');
-
- $feeds = $this->feedMapper->findAllFromUser($this->user);
- $this->assertCount(4, $feeds);
-
- $feed = reset($feeds);
-
- $items = $this->itemMapper->findAllFeed(
- $feed->getId(), 100, 0, true, false, $this->user
- );
- $this->assertCount(7, $items);
-
- $this->feedMapper->delete($feed);
-
- $this->assertCount(3, $this->feedMapper->findAllFromUser($this->user));
-
- $items = $this->itemMapper->findAllFeed(
- $feed->getId(), 100, 0, true, false, $this->user
- );
- $this->assertCount(0, $items);
- }
-
- public function testGetToDelete()
- {
- $this->loadFeedFixtures(
- [
- ['deletedAt' => 1],
- ['deletedAt' => 0],
- ['deletedAt' => 1, 'userId' => 'john'],
- ['deletedAt' => 1000]
- ]
- );
-
- $fetched = $this->feedMapper->getToDelete();
-
- $this->assertIsArray($fetched);
- $this->assertCount(3, $fetched);
- $this->assertContainsOnlyInstancesOf(Feed::class, $fetched);
-
- $this->tearDownUser('john');
- }
-
- public function testGetToDeleteOlderThan()
- {
- $this->loadFeedFixtures(
- [
- ['deletedAt' => 1],
- ['deletedAt' => 0],
- ['deletedAt' => 1, 'userId' => 'john'],
- ['deletedAt' => 1000]
- ]
- );
-
- $fetched = $this->feedMapper->getToDelete(1000);
-
- $this->assertIsArray($fetched);
- $this->assertCount(2, $fetched);
- $this->assertContainsOnlyInstancesOf(Feed::class, $fetched);
-
- $this->tearDownUser('john');
- }
-
- public function testGetToDeleteUser()
- {
- $this->loadFeedFixtures(
- [
- ['deletedAt' => 1],
- ['deletedAt' => 0],
- ['deletedAt' => 1, 'userId' => 'john'],
- ['deletedAt' => 1000]
- ]
- );
-
- $fetched = $this->feedMapper->getToDelete(2000, $this->user);
-
- $this->assertIsArray($fetched);
- $this->assertCount(2, $fetched);
- $this->assertContainsOnlyInstancesOf(Feed::class, $fetched);
-
- $this->tearDownUser('john');
- }
-
- public function testGetToDeleteEmpty()
- {
- $fetched = $this->feedMapper->getToDelete();
-
- $this->assertIsArray($fetched);
- $this->assertCount(0, $fetched);
- }
-
- public function testDeleteUser()
- {
- $this->loadFixtures('default');
-
- $this->assertCount(4, $this->feedMapper->findAllFromUser($this->user));
-
- $items = $this->itemMapper->findAllItems(100, 0, 0, true, false, $this->user);
- $this->assertCount(9, $items);
-
- $this->feedMapper->deleteUser($this->user);
-
- $this->assertCount(0, $this->feedMapper->findAllFromUser($this->user));
-
- $items = $this->itemMapper->findAllItems(100, 0, 0, true, false, $this->user);
- $this->assertCount(0, $items);
- }
-}
diff --git a/tests/Integration/Db/ItemMapperTest.php b/tests/Integration/Db/ItemMapperTest.php
deleted file mode 100644
index ea7f306df..000000000
--- a/tests/Integration/Db/ItemMapperTest.php
+++ /dev/null
@@ -1,285 +0,0 @@
-<?php
-/**
- * Nextcloud - News
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Bernhard Posselt <dev@bernhard-posselt.com>
- * @copyright Bernhard Posselt 2015
- */
-
-namespace OCA\News\Tests\Integration\Db;
-
-use OCA\News\Tests\Integration\IntegrationTest;
-use OCA\News\Tests\Integration\Fixtures\FeedFixture;
-use OCA\News\Tests\Integration\Fixtures\ItemFixture;
-
-class ItemMapperTest extends IntegrationTest
-{
-
- public function testFind()
- {
- $feed = new FeedFixture();
- $feed = $this->feedMapper->insert($feed);
-
- $item = new ItemFixture(['feedId' => $feed->getId()]);
-
- $item = $this->itemMapper->insert($item);
-
- $fetched = $this->itemMapper->find($this->user, $item->getId());
-
- $this->assertEquals($item->getTitle(), $fetched->getTitle());
- }
-
- /**
- * Same as whereId with easier title search
- *
- * @param $title
- * @return mixed
- */
- private function whereTitleId($title)
- {
- return $this->findItemByTitle($title)->getId();
- }
-
- /**
- * @expectedException \OCP\AppFramework\Db\DoesNotExistException
- */
- public function testFindNotFoundWhenDeletedFeed()
- {
- $this->expectException('OCP\AppFramework\Db\DoesNotExistException');
- $this->loadFixtures('default');
-
- $id = $this->whereTitleId('not found feed');
- $this->itemMapper->find($this->user, $id);
- }
-
-
- /**
- * @expectedException \OCP\AppFramework\Db\DoesNotExistException
- */
- public function testFindNotFoundWhenDeletedFolder()
- {
- $this->expectException('OCP\AppFramework\Db\DoesNotExistException');
- $this->loadFixtures('default');
-
-
- $id = $this->whereTitleId('not found folder');
- $this->itemMapper->find($this->user, $id);
- }
-
-
- private function deleteReadOlderThanThreshold()
- {
- $this->loadFixtures('default');
-
- $this->itemMapper->deleteReadOlderThanThreshold(1);
-
- $this->itemMapper->find($this->user, $this->whereTitleId('a title1'));
- $this->itemMapper->find($this->user, $this->whereTitleId('a title2'));
- $this->itemMapper->find($this->user, $this->whereTitleId('a title3'));
- $this->itemMapper->find($this->user, $this->whereTitleId('del3'));
- $this->itemMapper->find($this->user, $this->whereTitleId('del4'));
- }
-
- /**
- * @expectedException \OCP\AppFramework\Db\DoesNotExistException
- */
- public function testDeleteOlderThanThresholdOne()
- {
- $this->expectException('OCP\AppFramework\Db\DoesNotExistException');
- $this->loadFixtures('default');
- $id = $this->whereTitleId('del1');
-
- $this->deleteReadOlderThanThreshold();
-
- $this->itemMapper->find($this->user, $id);
- }
-
- /**
- * @expectedException \OCP\AppFramework\Db\DoesNotExistException
- */
- public function testDeleteOlderThanThresholdTwo()
- {
- $this->expectException('OCP\AppFramework\Db\DoesNotExistException');
- $this->loadFixtures('default');
- $id = $this->whereTitleId('del2');
-
- $this->deleteReadOlderThanThreshold();
-
- $this->itemMapper->find($this->user, $id);
- }
-
-
- public function testStarredCount()
- {
- $this->loadFixtures('default');
-
- $count = $this->itemMapper->starredCount($this->user);
- $this->assertEquals(2, $count);
- }
-
-
- public function testReadAll()
- {
- $this->loadFixtures('default');
-
- $this->itemMapper->readAll(PHP_INT_MAX, 10, $this->user);
-
- $items = $this->itemMapper->findAllItems(
- 30, 0, 0, false, false, $this->user
- );
-
- $this->assertEquals(0, count($items));
-
- $itemId = $this->whereTitleId('a title1');
- $item = $this->itemMapper->find($this->user, $itemId);
-
- $this->assertEquals(10, $item->getLastModified());
-
- $itemId = $this->whereTitleId('a title3');
- $item = $this->itemMapper->find($this->user, $itemId);
-
- $this->assertEquals(10, $item->getLastModified());
-
- $itemId = $this->whereTitleId('a title9');
- $item = $this->itemMapper->find($this->user, $itemId);
-
- $this->assertEquals(10, $item->getLastModified());
- }
-
-
- public function testReadFeed()
- {
- $this->loadFixtures('default');
-
- $feedId = $this->findFeedByTitle('third feed')->getId();
- $this->itemMapper->readFeed(
- $feedId, PHP_INT_MAX, 10, $this->user
- );
-
- $items = $this->itemMapper->findAllItems(
- 30, 0, 0, false, false, $this->user
- );
-
- $this->assertEquals(2, count($items));
-
- $item = $this->findItemByTitle('a title9');
- $item = $this->itemMapper->find($this->user, $item->getId());
-
- $this->assertEquals(10, $item->getLastModified());
-
- $item = $this->findItemByTitle('a title3');
- $item = $this->itemMapper->find($this->user, $item->getId());
- $this->assertTrue($item->isUnread());
-
-
- $item = $this->findItemByTitle('a title1');
- $item = $this->itemMapper->find($this->user, $item->getId());
- $this->assertTrue($item->isUnread());
- }
-
-
- public function testDeleteUser()
- {
- $this->loadFixtures('default');
-
- $this->itemMapper->deleteUser($this->user);
- $id = $this->itemMapper->getNewestItemId($this->user);
-
- $this->assertEquals(0, $id);
- }
-
- public function testGetNewestItemId()
- {
- $this->loadFixtures('default');
-
- $id = $this->itemMapper->getNewestItemId($this->user);
-
- $itemId = $this->whereTitleId('no folder');
- $this->assertEquals($itemId, $id);
- }
-
- public function testFindAllUnreadOrStarred()
- {
- $this->loadFixtures('default');
-
- $items = $this->itemMapper->findAllUnreadOrStarred($this->user);
- $this->assertEquals(4, count($items));
- }
-
-
- public function testReadItem()
- {
- $this->loadFixtures('readitem');
- // assert that all items are unread
- $feed = $this->feedMapper->where(['userId' => 'john'])[0];
- $items = $this->itemMapper->where(['feedId' => $feed->getId()]);
- foreach ($items as $item) {
- $this->assertTrue($item->isUnread());
- }
- $feed = $this->feedMapper->where(['userId' => 'test'])[0];
- $items = $this->itemMapper->where(['feedId' => $feed->getId()]);
- foreach ($items as $item) {
- $this->assertTrue($item->isUnread());
- }
-
- // read an item
- $duplicateItem = $this->itemMapper->where(['feedId' => $feed->getId()])[0];
- $this->itemMapper->readItem($duplicateItem->getId(), true, 1000, $this->user);
-
- // assert that all test user's same items are read
- $items = $this->itemMapper->where(['feedId' => $feed->getId(), 'title' => 'blubb']);
- foreach ($items as $item) {
- $this->assertFalse($item->isUnread());
- }
-
- // assert that a different item is not read
- $items = $this->itemMapper->where(['feedId' => $feed->getId(), 'title' => 'blubbs']);
- foreach ($items as $item) {
- $this->assertTrue($item->isUnread());
- }
-
- // assert that other user's same items stayed the same
- $johnsFeed = $this->feedMapper->where(['userId' => 'john'])[0];
- $items = $this->itemMapper->where(['feedId' => $johnsFeed->getId()]);
- foreach ($items as $item) {
- $this->assertTrue($item->isUnread());
- }
- }
-
- public function testUnreadItem()
- {
- $this->loadFixtures('readitem');
- // unread an item
- $feed = $this->feedMapper->where(['userId' => 'test'])[0];
- $duplicateItem = $this->itemMapper->where(['feedId' => $feed->getId()])[0];
- $this->itemMapper->readItem($duplicateItem->getId(), true, 1000, $this->user);
- $this->itemMapper->readItem($duplicateItem->getId(), false, 1000, $this->user);
-
- // assert that only one item is now unread
- $items = $this->itemMapper->where(['feedId' => $feed->getId(), 'title' => 'blubb']);
- foreach ($items as $item) {
- if ($item->getId() === $duplicateItem->getId()) {
- $this->assertTrue($item->isUnread());
- } else {
- $this->assertFalse($item->isUnread());
- }
- }
-
- // assert that other user's same items stayed the same
- $johnsFeed = $this->feedMapper->where(['userId' => 'john'])[0];
- $items = $this->itemMapper->where(['feedId' => $johnsFeed->getId()]);
- foreach ($items as $item) {
- $this->assertTrue($item->isUnread());
- }
- }
-
- protected function tearDown(): void
- {
- parent::tearDown();
- $this->clearUserNewsDatabase('john');
- }
-
-}
diff --git a/tests/Integration/Fixtures/FeedFixture.php b/tests/Integration/Fixtures/FeedFixture.php
deleted file mode 100644
index 0c1e31af9..000000000
--- a/tests/Integration/Fixtures/FeedFixture.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * Nextcloud - News
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Bernhard Posselt <dev@bernhard-posselt.com>
- * @copyright Bernhard Posselt 2015
- */
-
-
-namespace OCA\News\Tests\Integration\Fixtures;
-
-use OCA\News\Db\Feed;
-
-class FeedFixture extends Feed
-{
-
- use Fixture;
-
- public function __construct(array $defaults = [])
- {
- parent::__construct();
- $defaults = array_merge(
- [
- 'userId' => 'test',
- 'urlHash' => 'urlHash',
- 'url' => 'http://the.url.com',
- 'title' => 'title',
- 'faviconLink' => 'http://feed.com/favicon.ico',
- 'added' => 3000,
- 'folderId' => null,
- 'link' => 'http://feed.com/rss',
- 'preventUpdate' => false,
- 'deletedAt' => 0,
- 'articlesPerUpdate' => 40,
- 'httpLastModified' => 10,
- 'httpEtag' => '',
- 'location' => 'http://feed.com/rss',
- 'ordering' => 0,
- 'fullTextEnabled' => false,
- 'pinned' => false,
- 'updateMode' => 0,
- 'updateErrorCount' => 0,
- 'lastUpdateError' => '',
- ],
- $defaults
- );
- unset($defaults['items']);
- $this->fillDefaults($defaults);
- }
-
-}
diff --git a/tests/Integration/Fixtures/Fixture.php b/tests/Integration/Fixtures/Fixture.php
deleted file mode 100644
index 366c93228..000000000
--- a/tests/Integration/Fixtures/Fixture.php
+++ /dev/null