summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDevlin Junker <devlin.junker@gmail.com>2023-08-05 19:16:39 -0700
committerBenjamin Brahmer <info@b-brahmer.de>2023-08-09 11:08:04 +0200
commit923f986e67413ac548cc98d6d59fa01de9681035 (patch)
treea3d1fb38fd28388686b0c394d4824af30b959fd7 /tests
parent450047ef4be0d39ba8a5e5e5ac0d6e87b7203ebb (diff)
upmerged from master
Signed-off-by: Devlin Junker <devlin.junker@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/Unit/Db/ItemMapperTest.php12
-rw-r--r--tests/Unit/Fetcher/FeedFetcherTest.php21
-rw-r--r--tests/Unit/Search/FeedSearchProviderTest.php2
-rw-r--r--tests/Unit/Search/FolderSearchProviderTest.php2
-rw-r--r--tests/Unit/Search/ItemSearchProviderTest.php147
-rw-r--r--tests/Unit/Service/StatusServiceTest.php12
-rw-r--r--tests/api/items.bats2
-rw-r--r--tests/command/feeds.bats3
m---------tests/test_helper/bats-assert0
-rw-r--r--tests/test_helper/feeds/Nextcloud.rss22
-rw-r--r--tests/test_helper/feeds/heise.xml602
-rw-r--r--tests/test_helper/feeds/no_guid_feed.xml22
m---------tests/test_helper/php-feed-generator0
-rw-r--r--tests/updater/helpers/settings.bash8
-rw-r--r--tests/updater/update.bats276
15 files changed, 787 insertions, 344 deletions
diff --git a/tests/Unit/Db/ItemMapperTest.php b/tests/Unit/Db/ItemMapperTest.php
index 3a4a026d6..397f3be2c 100644
--- a/tests/Unit/Db/ItemMapperTest.php
+++ b/tests/Unit/Db/ItemMapperTest.php
@@ -419,7 +419,7 @@ class ItemMapperTest extends MapperTestUtility
$this->builder->expects($this->once())
->method('select')
- ->with('items.*')
+ ->with('items.id')
->will($this->returnSelf());
$this->builder->expects($this->once())
@@ -528,7 +528,7 @@ class ItemMapperTest extends MapperTestUtility
->with('SQL QUERY')
->willReturn($result);
- $this->builder->expects($this->once())
+ $this->builder->expects($this->exactly(2))
->method('createParameter')
->will($this->returnArgument(0));
@@ -537,9 +537,9 @@ class ItemMapperTest extends MapperTestUtility
->with('news_items')
->will($this->returnSelf());
- $this->builder->expects($this->once())
+ $this->builder->expects($this->exactly(2))
->method('set')
- ->with('unread', 'unread')
+ ->withConsecutive(['unread', 'unread'], ['last_modified', 'last_modified'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(1))
@@ -547,9 +547,9 @@ class ItemMapperTest extends MapperTestUtility
->withConsecutive(['id IN (:idList)'])
->will($this->returnSelf());
- $this->builder->expects($this->exactly(2))
+ $this->builder->expects($this->exactly(3))
->method('setParameter')
- ->withConsecutive(['idList', [1, 2]], ['unread', false])
+ ->withConsecutive(['idList', [1, 2]], ['unread', false], ['last_modified'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(1))
diff --git a/tests/Unit/Fetcher/FeedFetcherTest.php b/tests/Unit/Fetcher/FeedFetcherTest.php
index af8066171..1814a8271 100644
--- a/tests/Unit/Fetcher/FeedFetcherTest.php
+++ b/tests/Unit/Fetcher/FeedFetcherTest.php
@@ -326,7 +326,7 @@ class FeedFetcherTest extends TestCase
$item = $this->createItem();
$feed = $this->createFeed();
$this->mockIterator($this->feed_mock, [$this->item_mock]);
- $result = $this->fetcher->fetch($this->url, false, null, null);
+ $result = $this->fetcher->fetch($this->url, false, null, null, null);
$this->assertEquals([$feed, [$item]], $result);
}
@@ -344,7 +344,8 @@ class FeedFetcherTest extends TestCase
$this->url,
false,
'account@email.com',
- 'F9sEU*Rt%:KFK8HMHT&'
+ 'F9sEU*Rt%:KFK8HMHT&',
+ $this->modified->format(DateTime::RSS)
);
$this->assertEquals([$feed, [$item]], $result);
@@ -359,7 +360,7 @@ class FeedFetcherTest extends TestCase
$item = $this->createItem('audio/ogg');
$feed = $this->createFeed();
$this->mockIterator($this->feed_mock, [$this->item_mock]);
- $result = $this->fetcher->fetch($this->url, false, null, null);
+ $result = $this->fetcher->fetch($this->url, false, null, null, null);
$this->assertEquals([$feed, [$item]], $result);
}
@@ -373,7 +374,7 @@ class FeedFetcherTest extends TestCase
$item = $this->createItem('video/ogg');
$feed = $this->createFeed();
$this->mockIterator($this->feed_mock, [$this->item_mock]);
- $result = $this->fetcher->fetch($this->url, false, null, null);
+ $result = $this->fetcher->fetch($this->url, false, null, null, null);
$this->assertEquals([$feed, [$item]], $result);
}
@@ -388,7 +389,7 @@ class FeedFetcherTest extends TestCase
$feed = $this->createFeed('de-DE');
$item = $this->createItem();
$this->mockIterator($this->feed_mock, [$this->item_mock]);
- $result = $this->fetcher->fetch($this->url, false, null, null);
+ $result = $this->fetcher->fetch($this->url, false, null, null, null);
$this->assertEquals([$feed, [$item]], $result);
}
@@ -402,7 +403,7 @@ class FeedFetcherTest extends TestCase
$this->createFeed('he-IL');
$this->createItem();
$this->mockIterator($this->feed_mock, [$this->item_mock]);
- list($_, $items) = $this->fetcher->fetch($this->url, false, null, null);
+ list($_, $items) = $this->fetcher->fetch($this->url, false, null, null, null);
$this->assertTrue($items[0]->getRtl());
}
@@ -428,7 +429,7 @@ class FeedFetcherTest extends TestCase
$this->mockIterator($this->feed_mock, [$this->item_mock]);
- list($feed, $items) = $this->fetcher->fetch($this->url, false, null, null);
+ list($feed, $items) = $this->fetcher->fetch($this->url, false, null, null, null);
$this->assertSame($items[0]->getPubDate(), 1522180229);
}
@@ -454,7 +455,7 @@ class FeedFetcherTest extends TestCase
$this->mockIterator($this->feed_mock, [$this->item_mock]);
- list($feed, $items) = $this->fetcher->fetch($this->url, false, null, null);
+ list($feed, $items) = $this->fetcher->fetch($this->url, false, null, null, null);
$this->assertSame($items[0]->getPubDate(), 1519761029);
}
@@ -467,7 +468,7 @@ class FeedFetcherTest extends TestCase
$this->createItem();
$feed = $this->createFeed();
$this->mockIterator($this->feed_mock, [$this->item_mock]);
- $result = $this->fetcher->fetch($this->url, false, null, null);
+ $result = $this->fetcher->fetch($this->url, false, null, null. null, null);
//Explicitly assert GUID value
$this->assertEquals(2, count($result));
$this->assertEquals(1, count($result[1]));
@@ -485,7 +486,7 @@ class FeedFetcherTest extends TestCase
$this->createItem();
$feed = $this->createFeed();
$this->mockIterator($this->feed_mock, [$this->item_mock]);
- $result = $this->fetcher->fetch($this->url, false, null, null);
+ $result = $this->fetcher->fetch($this->url, false, null, null, null);
//Explicitly assert GUID value
$this->assertEquals(2, count($result));
$this->assertEquals(1, count($result[1]));
diff --git a/tests/Unit/Search/FeedSearchProviderTest.php b/tests/Unit/Search/FeedSearchProviderTest.php
index 97ec1f984..e1463a7a7 100644
--- a/tests/Unit/Search/FeedSearchProviderTest.php
+++ b/tests/Unit/Search/FeedSearchProviderTest.php
@@ -110,7 +110,7 @@ class FeedSearchProviderTest extends TestCase
$this->generator->expects($this->once())
->method('imagePath')
- ->with('core', 'filetypes/text.svg')
+ ->with('core', 'rss.svg')
->willReturn('folderpath.svg');
$this->generator->expects($this->once())
diff --git a/tests/Unit/Search/FolderSearchProviderTest.php b/tests/Unit/Search/FolderSearchProviderTest.php
index cf4ffd969..e06bf45f7 100644
--- a/tests/Unit/Search/FolderSearchProviderTest.php
+++ b/tests/Unit/Search/FolderSearchProviderTest.php
@@ -77,7 +77,7 @@ class FolderSearchProviderTest extends TestCase
public function testGetOrderInternal()
{
- $this->assertSame(-1, $this->class->getOrder('news.page.index', []));
+ $this->assertSame(0, $this->class->getOrder('news.page.index', []));
}
public function testSearch()
diff --git a/tests/Unit/Search/ItemSearchProviderTest.php b/tests/Unit/Search/ItemSearchProviderTest.php
new file mode 100644
index 000000000..062d52a77
--- /dev/null
+++ b/tests/Unit/Search/ItemSearchProviderTest.php
@@ -0,0 +1,147 @@
+<?php
+
+namespace OCA\News\Search;
+
+use OCA\News\Db\Item;
+use OCA\News\Db\ListType;
+use OCA\News\Service\ItemServiceV2;
+use OCP\IL10N;
+use OCP\IURLGenerator;
+use OCP\IUser;
+use OCP\Search\ISearchQuery;
+use PHPUnit\Framework\MockObject\MockObject;
+use PHPUnit\Framework\TestCase;
+
+class ItemSearchProviderTest extends TestCase
+{
+
+ /**
+ * @var MockObject|ItemServiceV2
+ */
+ private $itemService;
+
+ /**
+ * @var MockObject|IL10N
+ */
+ private $l10n;
+
+ /**
+ * @var MockObject|IURLGenerator
+ */
+ private $generator;
+
+ /**
+ * @var ItemSearchProvider
+ */
+ private $class;
+
+ protected function setUp(): void
+ {
+ $this->l10n = $this->getMockBuilder(IL10N::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->generator = $this->getMockBuilder(IURLGenerator::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->itemService = $this->getMockBuilder(ItemServiceV2::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $this->class = new ItemSearchProvider(
+ $this->l10n,
+ $this->generator,
+ $this->itemService
+ );
+ }
+
+ public function testGetId()
+ {
+ $this->assertSame('news_item', $this->class->getId());
+ }
+
+ public function testGetName()
+ {
+ $this->l10n->expects($this->once())
+ ->method('t')
+ ->with('News articles')
+ ->willReturnArgument(0);
+
+ $this->assertSame('News articles', $this->class->getName());
+ }
+
+ public function testGetOrderExternal()
+ {
+ $this->assertSame(65, $this->class->getOrder('contacts.Page.index', []));
+ }
+
+ public function testGetOrderInternal()
+ {
+ $this->assertSame(1, $this->class->getOrder('news.page.index', []));
+ }
+
+ public function testSearch()
+ {
+ $user = $this->getMockBuilder(IUser::class)
+ ->getMock();
+ $query = $this->getMockBuilder(ISearchQuery::class)
+ ->getMock();
+
+ $query->expects($this->once())
+ ->method('getCursor')
+ ->willReturn(null);
+
+ $query->expects($this->once())
+ ->method('getLimit')
+ ->willReturn(10);
+
+ $user->expects($this->once())
+ ->method('getUID')
+ ->willReturn('user');
+
+ $query->expects($this->once())
+ ->method('getTerm')
+ ->willReturn('some text');
+
+
+ $items = [
+ Item::fromRow(['id' => 1,'title' => 'some_tErm', 'body' => 'some text', 'feedId' => 1]),
+ Item::fromRow(['id' => 2,'title' => 'nothing', 'body' => 'some text', 'feedId' => 1])
+ ];
+
+ $this->itemService->expects($this->once())
+ ->method('findAllWithFilters')
+ ->with(
+ 'user',
+ ListType::ALL_ITEMS,
+ 10,
+ 0,
+ false,
+ ['some text'])
+ ->willReturn($items);
+
+
+ $this->l10n->expects($this->once())
+ ->method('t')
+ ->with('News')
+ ->willReturnArgument(0);
+
+ $this->generator->expects($this->once())
+ ->method('imagePath')
+ ->with('core', 'filetypes/text.svg')
+ ->willReturn('folderpath.svg');
+
+ $this->generator->expects($this->exactly(2))
+ ->method('linkToRoute')
+ ->with('news.page.index')
+ ->willReturn('/news');
+
+
+ $result = $this->class->search($user, $query)->jsonSerialize();
+ $entry = $result['entries'][0]->jsonSerialize();
+ $this->assertSame('News', $result['name']);
+ $this->assertSame('some_tErm', $entry['title']);
+ $this->assertSame('folderpath.svg', $entry['thumbnailUrl']);
+ $this->assertSame('some text', $entry['subline']);
+ $this->assertSame('/news#/items/feeds/1', $entry['resourceUrl']);
+ }
+}
diff --git a/tests/Unit/Service/StatusServiceTest.php b/tests/Unit/Service/StatusServiceTest.php
index dfe3dfd55..fdfe41af5 100644
--- a/tests/Unit/Service/StatusServiceTest.php
+++ b/tests/Unit/Service/StatusServiceTest.php
@@ -16,6 +16,7 @@ namespace OCA\News\Tests\Unit\Service;
use OCA\News\Service\StatusService;
use OCP\IConfig;
use OCP\IDBConnection;
+use OCP\BackgroundJob\IJobList;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
@@ -37,6 +38,12 @@ class StatusServiceTest extends TestCase
*/
private $service;
+ /**
+ * @var IJobList
+ */
+ private $jobList;
+
+
public function setUp(): void
{
$this->settings = $this->getMockBuilder(IConfig::class)
@@ -45,7 +52,10 @@ class StatusServiceTest extends TestCase
$this->connection = $this->getMockBuilder(IDBConnection::class)
->disableOriginalConstructor()
->getMock();
- $this->service = new StatusService($this->settings, $this->connection);
+ $this->jobList = $this->getMockBuilder(IJobList::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->service = new StatusService($this->settings, $this->connection, $this->jobList);
}
public function testGetStatus()
diff --git a/tests/api/items.bats b/tests/api/items.bats
index d6896785f..4bb38bf75 100644
--- a/tests/api/items.bats
+++ b/tests/api/items.bats
@@ -67,7 +67,7 @@ teardown() {
SYNC_TIME=$(date +%s)
# mark all items of feed as read, returns nothing (other client marks items as read)
- STATUS_CODE=$(http --ignore-stdin -hdo /tmp/body -a ${user}:${APP_PASSWORD} PUT ${BASE_URLv1}/feeds/$FEEDID/read newestItemId="$max" 2>&1| grep HTTP/)
+ STATUS_CODE=$(http --ignore-stdin -hdo /tmp/body -a ${user}:${APP_PASSWORD} PUT ${BASE_URLv1}/items/read newestItemId="$max" 2>&1| grep HTTP/)
# client 2 checks for updates since last sync
UPDATED_ITEMS=($(http --ignore-stdin -b -a ${user}:${APP_PASSWORD} GET ${BASE_URLv1}/items/updated id=$FEEDID lastModified=$SYNC_TIME | grep -Po '"id":\K([0-9]+)' | tr '\n' ' '))
diff --git a/tests/command/feeds.bats b/tests/command/feeds.bats
index 7598ac345..683207d98 100644
--- a/tests/command/feeds.bats
+++ b/tests/command/feeds.bats
@@ -24,6 +24,7 @@ teardown() {
@test "[$TESTSUITE] Add feed without GUIDs" {
run ./occ news:feed:add "$user" "$NO_GUID_FEED" --title "Something-${BATS_SUITE_TEST_NUMBER}"
+ echo "Attention! Are the dates of the feed older than 'one year ago'? If so this is not a bug, adjust the dates. #2201"
assert_failure
assert_output "Malformed feed: item has no GUID"
@@ -47,7 +48,7 @@ teardown() {
assert_success
assert_output --partial '"faviconLink": "https:\/\/nextcloud.com\/wp-content\/uploads\/2022\/03\/favicon.png",'
- assert_output --partial '"faviconLink": "https:\/\/www.heise.de\/favicon.ico?v=JykvN0w9Ye",'
+ assert_output --partial '"faviconLink": "https:\/\/www.heise.de\/favicon.ico?v='
}
@test "[$TESTSUITE] List all items" {
diff --git a/tests/test_helper/bats-assert b/tests/test_helper/bats-assert
-Subproject ffe84ea5dd43b568851549b3e241db150c12929
+Subproject 78fa631d1370562d2cd4a1390989e706158e7bf
diff --git a/tests/test_helper/feeds/Nextcloud.rss b/tests/test_helper/feeds/Nextcloud.rss
index 0e031ef83..a46def8bd 100644
--- a/tests/test_helper/feeds/Nextcloud.rss
+++ b/tests/test_helper/feeds/Nextcloud.rss
@@ -12,7 +12,7 @@
<atom:link href="http://localhost:8090/Nextcloud.rss" rel="self" type="application/rss+xml" />
<link>https://nextcloud.com/</link>
<description></description>
- <lastBuildDate>Tue, 16 Aug 2022 10:17:13 +0000</lastBuildDate>
+ <lastBuildDate>Tue, 16 Aug 2099 10:17:13 +0000</lastBuildDate>
<language>en-US</language>
<sy:updatePeriod>
hourly </sy:updatePeriod>
@@ -32,7 +32,7 @@
<link>https://nextcloud.com/blog/how-to-get-started-with-nextcloud-repeat/</link>
<dc:creator><![CDATA[Fabrice Mous]]></dc:creator>
- <pubDate>Tue, 16 Aug 2022 09:44:01 +0000</pubDate>
+ <pubDate>Tue, 16 Aug 2099 09:44:01 +0000</pubDate>
<category><![CDATA[business]]></category>
<category><![CDATA[News]]></category>
<category><![CDATA[Webinar]]></category>
@@ -116,7 +116,7 @@
<link>https://nextcloud.com/blog/openproject-and-nextcloud-integrate-project-management-and-file-management/</link>
<dc:creator><![CDATA[Jos Poortvliet]]></dc:creator>
- <pubDate>Mon, 15 Aug 2022 12:44:53 +0000</pubDate>
+ <pubDate>Mon, 15 Aug 2099 12:44:53 +0000</pubDate>
<category><![CDATA[blog]]></category>
<category><![CDATA[business]]></category>
<category><![CDATA[partner]]></category>
@@ -160,7 +160,7 @@
<link>https://nextcloud.com/blog/5-more-things-to-keep-your-data-safe/</link>
<dc:creator><![CDATA[Mikaela Schneider]]></dc:creator>
- <pubDate>Wed, 10 Aug 2022 09:06:12 +0000</pubDate>
+ <pubDate>Wed, 10 Aug 2099 09:06:12 +0000</pubDate>
<category><![CDATA[blog]]></category>
<category><![CDATA[Community]]></category>
<category><![CDATA[general]]></category>
@@ -360,7 +360,7 @@
<link>https://nextcloud.com/blog/digital-sovereignty-security-collabora-online-nextcloud/</link>
<dc:creator><![CDATA[Fabrice Mous]]></dc:creator>
- <pubDate>Thu, 04 Aug 2022 13:07:21 +0000</pubDate>
+ <pubDate>Thu, 04 Aug 2099 13:07:21 +0000</pubDate>
<category><![CDATA[business]]></category>
<category><![CDATA[News]]></category>
<category><![CDATA[Webinar]]></category>
@@ -444,7 +444,7 @@
<link>https://nextcloud.com/blog/nextcloud-keeps-growth-up-with-75-more-revenue-and-10x-userbase/</link>
<dc:creator><![CDATA[Jos Poortvliet]]></dc:creator>
- <pubDate>Thu, 04 Aug 2022 09:40:29 +0000</pubDate>
+ <pubDate>Thu, 04 Aug 2099 09:40:29 +0000</pubDate>
<category><![CDATA[blog]]></category>
<category><![CDATA[business]]></category>
<category><![CDATA[general]]></category>
@@ -506,7 +506,7 @@
<link>https://nextcloud.com/blog/baden-wurttemberg-procurement-chamber-decides-us-cloud-services-are-not-gdpr-compliant/</link>
<dc:creator><![CDATA[Jos Poortvliet]]></dc:creator>
- <pubDate>Mon, 01 Aug 2022 09:00:00 +0000</pubDate>
+ <pubDate>Mon, 01 Aug 2099 09:00:00 +0000</pubDate>
<category><![CDATA[business]]></category>
<category><![CDATA[general]]></category>
<category><![CDATA[News]]></category>
@@ -553,7 +553,7 @@
<link>https://nextcloud.com/blog/interview-shadow-and-a-world-where-5-companies-own-all-data/</link>
<dc:creator><![CDATA[Jos Poortvliet]]></dc:creator>
- <pubDate>Mon, 01 Aug 2022 07:43:56 +0000</pubDate>
+ <pubDate>Mon, 01 Aug 2099 07:43:56 +0000</pubDate>
<category><![CDATA[general]]></category>
<category><![CDATA[News]]></category>
<category><![CDATA[partner]]></category>
@@ -579,7 +579,7 @@
<link>https://nextcloud.com/blog/all-app-developers-put-your-hands-up-best-nextcloud-app-contest-2/</link>
<dc:creator><![CDATA[Jos Poortvliet]]></dc:creator>
- <pubDate>Thu, 28 Jul 2022 09:00:00 +0000</pubDate>
+ <pubDate>Thu, 28 Jul 2099 09:00:00 +0000</pubDate>
<category><![CDATA[Apps]]></category>
<category><![CDATA[Community]]></category>
<category><![CDATA[conference]]></category>
@@ -715,7 +715,7 @@
<link>https://nextcloud.com/blog/5-unique-security-features-by-nextcloud/</link>
<dc:creator><![CDATA[Mikaela Schneider]]></dc:creator>
- <pubDate>Wed, 27 Jul 2022 14:36:15 +0000</pubDate>
+ <pubDate>Wed, 27 Jul 2099 14:36:15 +0000</pubDate>
<category><![CDATA[blog]]></category>
<category><![CDATA[general]]></category>
<category><![CDATA[Privacy Wednesday]]></category>
@@ -879,7 +879,7 @@
<comments>https://nextcloud.com/blog/nextcloud-in-the-wall-street-journal-microsoft-and-cookies/#comments</comments>
<dc:creator><![CDATA[Jos Poortvliet]]></dc:creator>
- <pubDate>Wed, 27 Jul 2022 09:12:45 +0000</pubDate>
+ <pubDate>Wed, 27 Jul 2099 09:12:45 +0000</pubDate>
<category><![CDATA[blog]]></category>
<category><![CDATA[business]]></category>
<category><![CDATA[general]]></category>
diff --git a/tests/test_helper/feeds/heise.xml b/tests/test_helper/feeds/heise.xml
index f0ff9e2f7..fb9f90787 100644
--- a/tests/test_helper/feeds/heise.xml
+++ b/tests/test_helper/feeds/heise.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">heise online News</title><subtitle type="html">Nachrichten nicht nur aus der Welt der Computer</subtitle>
- <updated>2022-08-19T15:36:00+02:00</updated>
+ <updated>2099-08-19T15:36:00+02:00</updated>
<id>https://www.heise.de/rss/heise-atom.xml</id>
<author>
<name>heise online</name><uri>https://www.heise.de</uri>
@@ -14,8 +14,8 @@
<entry>
<title type="text">RISC-V-Prozessor aus China: LeapFive NB2 verspricht Raspi-Rechenleistung</title>
<id>http://heise.de/-7237368</id>
- <updated>2022-08-19T15:36:00+02:00</updated>
- <published>2022-08-19T15:36:00+02:00</published>
+ <updated>2099-08-19T15:36:00+02:00</updated>
+ <published>2099-08-19T15:36:00+02:00</published>
<link href="https://www.heise.de/news/RISC-V-Prozessor-aus-China-LeapFive-NB2-verspricht-Raspi-Rechenleistung-7237368.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"/>
<summary type="html">Die chinesische Firma Yuefang Technology stellt einen 12-Nanometer-Chip mit vier RISC-V-Kernen, GPU, KI-Beschleuniger und DDR4-Controller vor.</summary>
<content type="html"><![CDATA[<p><a href="https://www.heise.de/news/RISC-V-Prozessor-aus-China-LeapFive-NB2-verspricht-Raspi-Rechenleistung-7237368.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"><img src="https://www.heise.de/scale/geometry/450/q80//imgs/18/3/5/9/5/0/2/6/LeapFive-NB2-16-9.jpg-53c28b2fbd5ed906.jpeg" class="webfeedsFeaturedVisual" alt="" /></a></p><p>Die chinesische Firma Yuefang Technology stellt einen 12-Nanometer-Chip mit vier RISC-V-Kernen, GPU, KI-Beschleuniger und DDR4-Controller vor.</p>]]></content>
@@ -24,8 +24,8 @@
<entry>
<title type="text">Besetzung des IGF: UN ringt um Stand zwischen den Fronten der Netzpolitik</title>
<id>http://heise.de/-7237105</id>
- <updated>2022-08-19T15:30:00+02:00</updated>
- <published>2022-08-19T15:30:00+02:00</published>
+ <updated>2099-08-19T15:30:00+02:00</updated>
+ <published>2099-08-19T15:30:00+02:00</published>
<link href="https://www.heise.de/news/Besetzung-des-IGF-UN-ringt-um-Stand-zwischen-den-Fronten-der-Netzpolitik-7237105.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"/>
<summary type="html">Während die USA und China eigene Initiativen zur Internet Governance starten, will António Guterres die Vereinten Nationen als multilaterale Plattform stärken.</summary>
<content type="html"><![CDATA[<p><a href="https://www.heise.de/news/Besetzung-des-IGF-UN-ringt-um-Stand-zwischen-den-Fronten-der-Netzpolitik-7237105.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"><img src="https://www.heise.de/scale/geometry/450/q80//imgs/18/3/5/9/4/9/2/9/shutterstock_1024337068.jpg-33126c9ed34da140.jpeg" class="webfeedsFeaturedVisual" alt="" /></a></p><p>Während die USA und China eigene Initiativen zur Internet Governance starten, will António Guterres die Vereinten Nationen als multilaterale Plattform stärken.</p>]]></content>
@@ -34,8 +34,8 @@
<entry>
<title type="text">Sicherheitsupdates: Angreifer könnten PCs mit IBM-Software attackieren</title>
<id>http://heise.de/-7236808</id>
- <updated>2022-08-19T14:46:00+02:00</updated>
- <published>2022-08-19T14:46:00+02:00</published>
+ <updated>2099-08-19T14:46:00+02:00</updated>
+ <published>2099-08-19T14:46:00+02:00</published>
<link href="https://www.heise.de/news/Sicherheitsupdates-Angreifer-koennten-PCs-mit-IBM-Software-attackieren-7236808.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"/>
<summary type="html">Mehrere Schwachstellen machen unter anderem IBM InfoSphere Identity Insight verwundbar. </summary>
<content type="html"><![CDATA[<p><a href="https://www.heise.de/news/Sicherheitsupdates-Angreifer-koennten-PCs-mit-IBM-Software-attackieren-7236808.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"><img src="https://www.heise.de/scale/geometry/450/q80//imgs/18/3/5/9/4/7/7/2/shutterstock_1024271563.jpg-f0fce7b24faab392.jpeg" class="webfeedsFeaturedVisual" alt="" /></a></p><p>Mehrere Schwachstellen machen unter anderem IBM InfoSphere Identity Insight verwundbar. </p>]]></content>
@@ -44,8 +44,8 @@
<entry>
<title type="text">Cyber-Angriff auf französische Tochter von Rüstungsunternehmen Hensoldt</title>
<id>http://heise.de/-7237071</id>
- <updated>2022-08-19T14:32:00+02:00</updated>
- <published>2022-08-19T14:32:00+02:00</published>
+ <updated>2099-08-19T14:32:00+02:00</updated>
+ <published>2099-08-19T14:32:00+02:00</published>
<link href="https://www.heise.de/news/Cyber-Angriff-auf-franzoesische-Tochter-von-Ruestungsunternehmen-Hensoldt-7237071.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"/>
<summary type="html">Das Rüstungsunternehmen Hensoldt meldet, dass die französische Tochter Nexeya Ziel eines &quot;ernsthaften Cyberangriffs&quot; wurde. Der Betrieb sei eingeschränkt.</summary>
<content type="html"><![CDATA[<p><a href="https://www.heise.de/news/Cyber-Angriff-auf-franzoesische-Tochter-von-Ruestungsunternehmen-Hensoldt-7237071.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"><img src="https://www.heise.de/scale/geometry/450/q80//imgs/18/3/5/9/4/9/1/0/shutterstock_1159844176.jpg-f104710441a26d29.jpeg" class="webfeedsFeaturedVisual" alt="" /></a></p><p>Das Rüstungsunternehmen Hensoldt meldet, dass die französische Tochter Nexeya Ziel eines "ernsthaften Cyberangriffs" wurde. Der Betrieb sei eingeschränkt.</p>]]></content>
@@ -54,8 +54,8 @@
<entry>
<title type="text">Youtube führt Wasserzeichen in heruntergeladenen Shorts ein</title>
<id>http://heise.de/-7236987</id>
- <updated>2022-08-19T13:58:00+02:00</updated>
- <published>2022-08-19T13:58:00+02:00</published>
+ <updated>2099-08-19T13:58:00+02:00</updated>
+ <published>2099-08-19T13:58:00+02:00</published>
<link href="https://www.heise.de/news/Youtube-fuehrt-Wasserzeichen-in-heruntergeladenen-Shorts-ein-7236987.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"/>
<summary type="html">Google markiert Shorts: Bei Youtube erstellte Kurzvideos werden mit einem Wasserzeichen gekennzeichnet, sobald man sie herunterlädt. </summary>
<content type="html"><![CDATA[<p><a href="https://www.heise.de/news/Youtube-fuehrt-Wasserzeichen-in-heruntergeladenen-Shorts-ein-7236987.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"><img src="https://www.heise.de/scale/geometry/450/q80//imgs/18/3/5/9/4/8/6/7/shutterstock_1830055352.jpg-11fc534344318f5e.jpeg" class="webfeedsFeaturedVisual" alt="" /></a></p><p>Google markiert Shorts: Bei Youtube erstellte Kurzvideos werden mit einem Wasserzeichen gekennzeichnet, sobald man sie herunterlädt. </p>]]></content>
@@ -64,8 +64,8 @@
<entry>
<title type="text">Artemis-1: NASA plant Website zur Nachverfolgung der Mondmission in Echtzeit</title>
<id>http://heise.de/-7236962</id>
- <updated>2022-08-19T13:38:00+02:00</updated>
- <published>2022-08-19T13:38:00+02:00</published>
+ <updated>2099-08-19T13:38:00+02:00</updated>
+ <published>2099-08-19T13:38:00+02:00</published>
<link href="https://www.heise.de/news/Artemis-1-NASA-plant-Website-zur-Nachverfolgung-der-Mondmission-in-Echtzeit-7236962.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"/>
<summary type="html">In wenigen Tagen will die NASA die Raumkapsel Orion zum Mond schießen. Die Mission können Interessierte dann live online verfolgen – basierend auf echten Daten.</summary>
<content type="html"><![CDATA[<p><a href="https://www.heise.de/news/Artemis-1-NASA-plant-Website-zur-Nachverfolgung-der-Mondmission-in-Echtzeit-7236962.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"><img src="https://www.heise.de/scale/geometry/450/q80//imgs/18/3/5/9/4/8/5/4/flyby.jpg-f34b9ab0ab810ddd.jpeg" class="webfeedsFeaturedVisual" alt="" /></a></p><p>In wenigen Tagen will die NASA die Raumkapsel Orion zum Mond schießen. Die Mission können Interessierte dann live online verfolgen – basierend auf echten Daten.</p>]]></content>
@@ -74,8 +74,8 @@
<entry>
<title type="text">MIT Technology Review Podcast: Die Auswirkungen vom Ende des Biosprits</title>
<id>http://heise.de/-7237047</id>
- <updated>2022-08-19T13:30:00+02:00</updated>
- <published>2022-08-19T13:30:00+02:00</published>
+ <updated>2099-08-19T13:30:00+02:00</updated>
+ <published>2099-08-19T13:30:00+02:00</published>
<link href="https://www.heise.de/hintergrund/MIT-Technology-Review-Podcast-Die-Auswirkungen-vom-Ende-des-Biosprits-7237047.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"/>
<summary type="html">Biokraftstoffe sind dem Ende geweiht. Die Anbauflächen sollen für Nahrung genutzt werden. Doch das bringt neue Probleme mit sich, erläutert Horst Fehrenbach.</summary>
<content type="html"><![CDATA[<p><a href="https://www.heise.de/hintergrund/MIT-Technology-Review-Podcast-Die-Auswirkungen-vom-Ende-des-Biosprits-7237047.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"><img src="https://www.heise.de/scale/geometry/450/q80//imgs/18/3/5/9/4/8/9/7/shutterstock_1935960685.jpg-509a8b30bb259caa.jpeg" class="webfeedsFeaturedVisual" alt="" /></a></p><p>Biokraftstoffe sind dem Ende geweiht. Die Anbauflächen sollen für Nahrung genutzt werden. Doch das bringt neue Probleme mit sich, erläutert Horst Fehrenbach.</p>]]></content>
@@ -84,8 +84,8 @@
<entry>
<title type="text">High-End-CPU für Server: Qualcomm setzt auf Nuvia-Kerne</title>
<id>http://heise.de/-7236952</id>
- <updated>2022-08-19T13:22:00+02:00</updated>
- <published>2022-08-19T13:22:00+02:00</published>
+ <updated>2099-08-19T13:22:00+02:00</updated>
+ <published>2099-08-19T13:22:00+02:00</published>
<link href="https://www.heise.de/news/High-End-CPU-Apples-Ex-Chefarchitekt-soll-seinen-Serverprozessor-bekommen-7236952.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"/>
<summary type="html">Qualcomm soll bereits einen ARM-Prozessor für Server entworfen haben. Darin stecken CPU-Kerne der übernommenen Firma Nuvia.</summary>
<content type="html"><![CDATA[<p><a href="https://www.heise.de/news/High-End-CPU-Apples-Ex-Chefarchitekt-soll-seinen-Serverprozessor-bekommen-7236952.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"><img src="https://www.heise.de/scale/geometry/450/q80//imgs/18/3/5/9/4/8/4/9/144415733_4d48bed0f4-76f169c74fcddc09.jpeg" class="webfeedsFeaturedVisual" alt="" /></a></p><p>Qualcomm soll bereits einen ARM-Prozessor für Server entworfen haben. Darin stecken CPU-Kerne der übernommenen Firma Nuvia.</p>]]></content>
@@ -94,8 +94,8 @@
<entry>
<title type="text">China greift US-Chips-Act an und warnt vor den Folgen </title>
<id>http://heise.de/-7236956</id>
- <updated>2022-08-19T13:18:00+02:00</updated>
- <published>2022-08-19T13:18:00+02:00</published>
+ <updated>2099-08-19T13:18:00+02:00</updated>
+ <published>2099-08-19T13:18:00+02:00</published>
<link href="https://www.heise.de/news/China-greift-US-Chips-Act-an-und-warnt-vor-den-Folgen-7236956.html?wt_mc=rss.red.ho.ho.atom.beitrag.beitrag"/>
<summary type="html">Der US-Chips-Act der USA verstößt laut China gegen die Fair-Trade-Prinzipien der WTO und sei diskriminierend. Das US-Gesetz bringe zusätzlich mehr Unsicherhe