예제 #1
0
 public function testFind()
 {
     $feedId = $this->feeds['first feed']->getId();
     $item = new Item();
     $item->setTitle('my title thats long');
     $item->setGuid('a doner');
     $item->setGuidHash('a doner');
     $item->setFeedId($feedId);
     $item->setUnread();
     $item->setBody('Döner');
     $created = $this->itemMapper->insert($item);
     $fetched = $this->itemMapper->find($created->getId(), $this->userId);
     $this->assertEquals($item->getTitle(), $fetched->getTitle());
     $this->assertEquals($item->getGuid(), $fetched->getGuid());
     $this->assertEquals($item->getGuidHash(), $fetched->getGuidHash());
     $this->assertEquals($item->getFeedId(), $fetched->getFeedId());
     $this->assertEquals($item->isRead(), $fetched->isRead());
     $this->assertEquals('Döner', $fetched->getBody());
 }
예제 #2
0
 public function testGetAllArticles()
 {
     $item1 = new Item();
     $item1->setFeedId(3);
     $item2 = new Item();
     $item2->setFeedId(5);
     $feed1 = new Feed();
     $feed1->setId(3);
     $feed1->setLink('http://goo');
     $feed2 = new Feed();
     $feed2->setId(5);
     $feed2->setLink('http://gee');
     $feeds = array($feed1, $feed2);
     $articles = array($item1, $item2);
     $this->feedBusinessLayer->expects($this->once())->method('findAll')->with($this->equalTo($this->user))->will($this->returnValue($feeds));
     $this->itemBusinessLayer->expects($this->once())->method('getUnreadOrStarred')->with($this->equalTo($this->user))->will($this->returnValue($articles));
     $return = $this->controller->articles();
     $headers = $return->getHeaders();
     $this->assertEquals('attachment; filename="articles.json"', $headers['Content-Disposition']);
     $this->assertEquals('[{"guid":null,"url":null,"title":null,' . '"author":null,"pubDate":null,"body":null,"enclosureMime":null,' . '"enclosureLink":null,"unread":false,"starred":false,' . '"feedLink":"http:\\/\\/goo"},{"guid":null,"url":null,"title":null,' . '"author":null,"pubDate":null,"body":null,"enclosureMime":null,' . '"enclosureLink":null,"unread":false,"starred":false,' . '"feedLink":"http:\\/\\/gee"}]', $return->render());
 }
예제 #3
0
 public function testImportArticlesCreatesOwnFeedWhenNotFound()
 {
     $url = 'http://owncloud/args';
     $feed = new Feed();
     $feed->setId(3);
     $feed->setUserId($this->user);
     $feed->setUrl($url);
     $feed->setLink($url);
     $feed->setTitle('Articles without feed');
     $feed->setAdded($this->time);
     $feed->setFolderId(0);
     $feed->setPreventUpdate(true);
     $feeds = [$feed];
     $item = new Item();
     $item->setFeedId(3);
     $item->setAuthor('john');
     $item->setGuid('s');
     $item->setGuidHash('s');
     $item->setTitle('hey');
     $item->setPubDate(333);
     $item->setBody('come over');
     $item->setEnclosureMime('mime');
     $item->setEnclosureLink('lin');
     $item->setUnread();
     $item->setUnstarred();
     $item->setLastModified($this->time);
     $json = $item->toExport(['feed3' => $feed]);
     $json2 = $json;
     // believe it or not this copies stuff :D
     $json2['feedLink'] = 'http://test.com';
     $items = [$json, $json2];
     $insertFeed = new Feed();
     $insertFeed->setLink('http://owncloud/nofeed');
     $insertFeed->setUrl('http://owncloud/nofeed');
     $insertFeed->setUserId($this->user);
     $insertFeed->setTitle('Articles without feed');
     $insertFeed->setAdded($this->time);
     $insertFeed->setPreventUpdate(true);
     $insertFeed->setFolderId(0);
     $this->l10n->expects($this->once())->method('t')->will($this->returnValue('Articles without feed'));
     $this->feedMapper->expects($this->once())->method('findAllFromUser')->with($this->equalTo($this->user))->will($this->returnValue($feeds));
     $this->feedMapper->expects($this->once())->method('insert')->with($this->equalTo($insertFeed))->will($this->returnValue($insertFeed));
     $this->itemMapper->expects($this->at(0))->method('findByGuidHash')->will($this->throwException(new DoesNotExistException('yo')));
     $this->purifier->expects($this->once())->method('purify')->with($this->equalTo($item->getBody()))->will($this->returnValue($item->getBody()));
     $this->itemMapper->expects($this->at(1))->method('insert')->with($this->equalTo($item));
     $this->itemMapper->expects($this->at(2))->method('findByGuidHash')->will($this->returnValue($item));
     $this->itemMapper->expects($this->at(3))->method('update')->with($this->equalTo($item));
     $this->feedMapper->expects($this->once())->method('findByUrlHash')->will($this->returnValue($feed));
     $result = $this->feedService->importArticles($items, $this->user);
     $this->assertEquals($feed, $result);
 }
예제 #4
0
파일: bootstrap.php 프로젝트: sbambach/news
 private function createItem($item)
 {
     $newItem = new Item();
     $newItem->setFeedId($item['feedId']);
     $newItem->setStatus($item['status']);
     $newItem->setBody($item['body']);
     $newItem->setTitle($item['title']);
     $newItem->setAuthor($item['author']);
     $newItem->setGuid($item['guid']);
     $newItem->setGuidHash($item['guid']);
     $newItem->setUrl($item['url']);
     $newItem->setPubDate($item['pubDate']);
     $newItem->setLastModified($item['lastModified']);
     $newItem->setEnclosureMime($item['enclosureMime']);
     $newItem->setEnclosureLink($item['enclosureLink']);
     return $this->itemMapper->insert($newItem);
 }